2. C语言的基本语法
C语句包含5个令牌(Tokens):分号; 、注释、标识符、关键字、空格。
2.1标识符
在编程语言中,标识符是用户编程时使用的名字,变量、常量、函数、语句块都有名字。是用来标识某个实体的一个符号,是对变量名、函数名、标号和其他各种用户定义的对象命名。
C语言中标识符的命名规范:
- 1).标识符由字母(A-Z 或 a-z )、数字、下划线组成,并且首字母不能是数字,C 标识符内不允许出现标点字符。
- 2).不能把C的关键字作为用户的标识符,例如:if、for、while等。(注:标识符不能和C语言的关键字相同,也不能和用户自定义的函数或C语言库函数同名)
- 3).标识符长度是由机器上的编译系统决定的,一般的限制为8字符,(注:8字符长度限制是C89标准,C99标准已经扩充长度,其实大部分工业标准都更长)。
- 4).标识符对大小写敏感,即严格区分大小写。一般对变量名用小写,符号常量命名用大写。(注:C语言中字母是区分大小写的,因此score、Score、SCORE分别代表三个不同的标识符)
- 5).标识符命名应做到"见名知意",例如,长度(外语:length),求和、总计(外语:sum),圆周率(外语:pi)
2.2 C语言的关键字
关键字 | 说明 |
---|---|
auto | 声明自动变量 |
break | 跳出当前循环 |
case | 开关语句分支 |
char | 声明字符型变量或函数返回值类型 |
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 | 循环语句的循环条件 |
2.2.1 C99 新增关键字
1999年12月16日,ISO推出了C99标准,该标准新增了5个C语言关键字:
-
inline restrict _Bool _Complex _Imaginary //定义一个布尔变量 BOOL flag = FALSE;
布尔类型可以声明为 _Bool flag。
__Bool 依然仍是整数类型,但与一般整型不同的是,_Bool 变量只能赋值为 0 或 1,非 0 的值都会被存储为 1。
C99还提供了一个头文件 <stdbool.h> 定义了 bool 代表 _Bool,true 代表 1,false 代表 0。只要导入 stdbool.h ,就能非常方便的操作布尔类型了
2.2.2 C11 新增关键字
2011年12月8日,ISO发布C语言的新标准C11,该标准新增了7个C语言关键字:
-
_Alignas _Alignof _Atomic _Static_assert _Noreturn _Thread_local _Generic
2.3 C语言的程序构成方式
- 1)c语言程序由函数构成,每个函数可以实现一个或多个功能。
- 2)一个正规程序可以有多个函数,但是有且只有一个主函数。
- 3)函数只有在被调用的时候才执行,主函数由系统调用执行。
- 4)函数的格式必须按照规范书写。
- 5)C 语言程序文件的后缀为 .c