C 语言语法
C语言的ISO标准的附件B给出了一套完整的语言语法规则。本附录再现了这些规则,而且我把这些规
则编写得更易读
①
。在每条规则中,语法项的名称会出现在左侧并以黑体字的形式显示出来。符号 、
*
、
+
、[、]、(和)具有下列的含义:
项目
1
项目
2
表示项目
1
和项目
2
可以两者选其一。
项目
*
表示项目可以重复零次或多次。
项目
+
表示项目可以重复一次或多次。
[
项目
]
表示项目是可选的。
(
和
)
用于可选择项组。
但是,当把这些符号设置成为
courier
粗体时,它们具有通常
C
语言中的含义。虽然大多数规则相当
清楚,但是有一些需要更深入的解释说明。如果需要,还会有注释。
A.1
记号
记号 关键字 标识符 常量 字符串字面量 运算符 标点符号
预处理 头文件名 标识符 预处理数 字符常量 字符串字面量 运算符 标点符号
每种不属于上述字符的非空白字符
“记号”是组成程序不可分割的符号。预处理器识别一些编译器不识别的记号,因
记号和预处理记号之间有区别。
A.2
关键字
关键字
auto
break case char const continue default do double
else
enum extern float for goto if int long register
return
short signed sizeof static struct switch typedef
union
unsigned void volatile while
A.3
标识符
标识符 非数字(非数字 数字)
*
非数字
_ a b c d e f g h i j k l m n o p q r s t u v w
x y z A B C D E F G H I J K L M N O P Q R S T U
V W X Y Z
数字
0 1 2 3 4 5 6 7 8 9
A.4
常量
常量 浮点常量 整型常量 枚举常量 字符常量
浮点常量 小数常量
[
指数部分
]
[
浮点后缀
]
| 数字
+
指数部分
[
浮点后缀
]
小数的常量 数字
*
.
数字
+
数字
+
.
指数部分
(
e E
) [
+ -
]
数字
+
① 这些资料经ANSI许可改编自American National Standards Institute ANSI/ISO 9899©1990。这个标准的副本可从
ANSI购买(ANSI,11 West 42nd Street, New York, NY 10036)。
附录
587