C的令牌(Token)
C 程序由各种令牌组成,令牌可以是关键字、标识符、常量、字符串值,或者是一个符号。
分号;
在 C 程序中,分号是语句结束符,每个语句必须以分号结束。
1 | printf("Hello, World! \n"); |
注释
C 语言有两种注释方式:
1 | // 单行注释 |
以 // 开始的单行注释,这种注释可以单独占一行。
1 | /* 单行注释 */ |
/* */
这种格式的注释可以单行或多行。
注释内不能在嵌套注释,注释也不能出现在字符串或字符值中。
1 | printf("//how do you do!\n"); |
输出分别是://how do you do!
和 /*how do you do!*/
标识符
C 标识符是用来标识变量、函数,或任何其他用户自定义项目的名称。一个标识符以字母 A-Z
或 a-z
或下划线 _
开始,后跟零个或多个字母、下划线和数字(0-9)。
C 标识符内不允许出现标点字符,比如 @、$ 和 %
。C 是区分大小写的编程语言。因此,在 C 中,Manpower
和 manpower
是两个不同的标识符。
C语言中标识符的命名规范:
- 1.标识符由字母、数字、下划线组成,并且首字母不能是数字。
- 2.不能把C的关键字作为用户的标识符,例如:if、for、while等。(注:标识符不能和C语言的关键字相同,也不能和用户自定义的函数或C语言库函数同名)
- 3.标识符长度是由机器上的编译系统决定的,一般的限制为8字符,(注:8字符长度限制是C89标准,C99标准已经扩充长度,其实大部分工业标准都更长)。
- 4.标识符对大小写敏感,即严格区分大小写。一般对变量名用小写,符号常量命名用大写。(注:C语言中字母是区分大小写的,因此 score、Score、SCORE 分别代表三个不同的标识符)
- 5.标识符命名应做到”见名知意”,例如,长度(外语:length),求和、总计(外语:sum),圆周率(外语:pi)
关键字
关键字 | 说明 |
---|---|
auto | 声明自动变量 |
break | 跳出当前循环 |
case | 开关语句分支 |
char | 声明字符型变量或函数返回值类型 |
const | 定义常量,如果一个变量被 const 修饰,那么它的值就不能再被改变 |
continue | 结束当前循环,开始下一轮循环 |
default | 开关语句中的”其它”分支 |
do | 循环语句的循环体 |
double | 声明双精度浮点型变量或函数返回值类型 |
else | 条件语句否定分支(与 if 连用) |
enum | 声明枚举类型 |
extern | 声明变量或函数是在其它文件或本文件的其他位置定义 |
float | 声明浮点型变量或函数返回值类型 |
for | 一种循环语句 |
goto | 无条件跳转语句 |
if | 条件语句 |
int | 声明整型变量或函数 |
long | 声明长整型变量或函数返回值类型 |
register | 声明寄存器变量 |
return | 子程序返回语句(可以带参数,也可不带参数) |
short | 声明短整型变量或函数 |
signed | 声明有符号类型变量或函数 |
sizeof | 计算数据类型或变量长度(即所占字节数) |
static | 声明静态变量 |
struct | 声明结构体类型 |
switch | 用于开关语句 |
typedef | 用以给数据类型取别名 |
unsigned | 声明无符号类型变量或函数 |
union | 声明共用体类型 |
void | 声明函数无返回值或无参数,声明无类型指针 |
volatile | 说明变量在程序执行中可被隐含地改变 |
while | 循环语句的循环条件 |
1999年12月16日,ISO推出了C99标准,该标准新增了5个C语言关键字:
1 | inline restrict _Bool _Complex _Imaginary |
2011年12月8日,ISO发布C语言的新标准C11,该标准新增了7个C语言关键字:
1 | _Alignas _Alignof _Atomic _Static_assert _Noreturn _Thread_local _Generic |