C源代码文件可以包含:
#include <头文件>
#define宏定义
类型定义(如struct和enum)
全局变量定义和初始化
函数定义(其中有一个是main函数)
函数定义:
函数接口定义,由函数名、参数和返回值类型组成
函数体语句块,由若干条语句套在{}里组成
每条语句开头可以有一个标号,语句有以下几种:
语句块,由若干条语句套在{}里组成
类型定义语句(如struct和enum)
变量定义和初始化语句
表达式语句
if/else语句
do/while语句
while语句
for语句
goto语句
break语句
continue语句
return语句
标号有以下几种:
自定义标号
case标号
default标号
表达式由操作数、运算符和()括号组成,操作数有以下几种:
宏定义
枚举常量
字符常量
整数
浮点数
字符串
变量名
函数名
表达式
已学过的运算符按优先级从高到低的顺序是:
后缀运算符:数组下标[]、函数调用()、结构体取成员.
单目运算符:++、--、&、正号+、负号-、逻辑非!
乘除运算符:*、/、%
加减运算符:+、-
关系运算符:<、>、<=、>=
相等性运算符:==、!=
逻辑与:&&
逻辑或:||
赋值运算符:=
有些表达式可以取左值也可以取右值,其它表达式则只能取右值,可以取左值的有:
变量名
数组下标,例如a[i+1]
结构体取成员,例如p.x
在C语言中凡是需要程序员起名字的语法元素都遵循标识符的命名规则,包括:
变量名
函数名
形参名
宏定义名
自定义标号
结构体和枚举的类型Tag
结构体和枚举的成员名