2.1 程序的构成 尽管C程序的内容千变万化,但是它们的构成都是一致的,一个完整的C源程序的格式可以如下表示:
2 Z3 i# {$ b `) \ 编译预处理
' T( A% z( v) I- H& ~ 主函数()
' V) W: e$ n% K- [( d P: U 函数()
6 W, w3 [: e% @2 w ?! N5 R' n .
8 m; J5 C0 H0 o .
: n! [! D. D" W; Z3 V .
0 ]. E; g o, i) V$ v: R 函数()
6 i. G/ Q5 u, `6 Y0 s+ ]7 k 从上面中可以看出,一个C源程序实际上就是若干函数的集合,这些函数中有一个是程序的主函数,任何C的源程序执行时,都是从主函数开始执行的,其它的函数最终必将被这个主函数所调用。C语言除了主函数规定必须取名main外,其它的函数名可以任取,但是要符合C的标识符取名规则,另外注意不要与保留字重名,最好也不可与C语言中的库函数或其它一些命令如编译预处另命令重名。各个函数在程序中所处的位置并不是固定的,但要求一个函数是完整的、独立的。不允许出现在一个函数内部又去定义另一个函数,或是函数格式不齐全的现象。一个完整的一般意义上的函数有一个固定的框架,编写具体的函数时,只需在这个框架中填入相应的内容即可。框架如下: 6 ?) |( m) E) i, _- | }% _. J
函数类型 函数名(形参)
9 d; x/ b6 `+ \ 形参说明
. }' ~+ M3 k, a Z' r- K* z { 3 Z3 W: d2 M* c
内部变量说明; $ G+ X" Z0 c% L1 x
执行语句部分;
6 S# s- J- _1 r5 M1 p( K& Q: F6 ` } " T- n9 L8 M9 z
2.2 C语言的基本词法
* l, S q1 [& ~* H( r C语言的基本词法由三部分组成:符号集、关键字、保留字。
`0 X. n: d" }: F) a$ D 符号集就是一门语言中允许出现的字符的集合,C语言的符号集就是ASCⅡ码表中的一些字符,在键盘上不能直接得到(比如说响铃字符),C语言引入了转义字符的概念,利用反斜杠符号″\″后加上字母的一个字符组合来表示这些字符,当在源程序中遇到这类字符组合时,虽然这个字符组合是一个字符串的形式,但C语言仍会自动将之理解成某一特定的字符。比如″\″,C语言在处理这个字符组合时,会自动理解成回车换行符号。转义字符经过进一步引申应用,形成了另外两种形式:″\ddd″和″\xnn″,这里″\″后的ddd和xnn分别代表三位八进制和两位十六进制数(打头的″x″只是标明后面跟着的是十六进制数),这两种形式不再局限于表示不可打印的字符,它们可以表示ASCⅡ码表中的任意字符,只要把所需表示的字符的ASCII码转换成八进制数或十六进制数即可。比如说字母″A″,ASCII码为65,65的八进制和十六进制分别为101和x41,所以,字母A可表示为″\101″或″\x41″,对转义字符应认真理解。
; Z2 K1 n) e/ m" E7 V7 p 标识符就是用以标识的符号。正如现实生活中给每一个人都取一个名字一样,C语言中的每一个对象(如函数、变量等)都必须取一个标识符以和其它对象区别开。在C语言中,这个标识符是一个字符串,这个字符串的选定有一定的规则:必须是以字母或下划线开头的字母与数字的序列。除了这个基本的规则外,C语言对标识符的命名还有几个限制需加以注意:①长度最好不要超过八个字符。因C中对标识符只处理前8个字符,超过8个长度的部分将被C自动忽略掉。″ABCDEFGH1″和″ABCDEFH2″是同一个标识符;②标识符不要与保留字同名,最好也不要与C提供的标准标识符,如库函数重名;③应注意C语言对大小写字母是敏感的,Abcd和abcd是两个不同的标识符。 ; y( L e8 I( l: }$ K1 d0 h
关键字实际上就是一些特殊的标识符,又称保留字,这些保留字不允许用户对它重新定义。
5 {! u0 l/ o" m k4 B3 G 2.3 头文件、数据说明、函数的开始和结束标志 " r- y* K% Z. Y9 P V
1.头文件:也称为包含文件或标题文件,一般放在一个C语言程序的开头,用#include″文件名″的格式,其中文件名是头文件名,一般用.h作为扩展名。
8 y8 p% P6 {( h5 r6 J5 Q 2.数据说明:C语言中的数据分常量和变量两种。
. ^8 `% x, D+ j n& H2 b; r" o 3.常量:有数值常量和符号常量两种。 , h* d1 i3 `& c1 R. D+ G: p" l5 b9 E+ v0 g
4.数值常量:可以分为整型常量、实型常量、浮点型常量和字符常量。
1 ~; j& p- x, D, v9 _3 d: { 5.符号常量:用一个标识符代表的一个常量,又称标识符形式的常量。
' Z( K; d) `/ ]+ a/ u6 F 6.变量:其值可以改变的量,变量名习惯上用小写字母表示。
! m1 }4 J8 y* y1 Q u 7.标识符:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。
/ j0 _5 Q6 c+ h4 L$ v 8.标识符的命名规则:C语言中标识符只能由字母、数字下划线三种字符组成,且第一个字符必须为字母或下划线。C语言是大小写敏感语言,即对大小写字母认为是不同的字符。C语言中标识符的长度随系统不同而字,如TURBO C中取前8个字符,8个字符后面的字符会自动取消。
4 b4 p% d5 r( @; Y 2.4 数据类型 - ]! S: M6 C/ j' E! y. Z
C语言的数据类型可以分为三类:
2 P- p% h2 C( U; S; N 基本类型 构造类型〖〗派生类型
- `7 v) M- [" c( B) A& q6 ` 整型int
% Z, u I. c' @+ q 字符型char
9 U0 c* P$ Z$ B/ l8 q 实型(浮点型)float
: ^# f& g4 |: o8 ]& n6 O0 } 双精度型double
6 D3 \6 }9 m( V: R7 } 空类型void 结构体struct
' N1 b0 V% { h5 J& _ 公用(联合)体union - S# ]3 G9 C2 M8 O
枚举型enum 5 M" ^6 m0 A, X9 i, X% O. ?. T
$ ^7 `: c8 J" H! R t" d# a 用户定义类型(使用关键字typedef) 数组类型 |