基本概念

环境

ANSI C 的任何一个实现,都存在两种环境:

  • 编译环境,源代码被转换为可执行的机器指令。

  • 执行环境,实际代码执行的环境。

这两种环境不必位于同一台机器上。

编译

编译将组成一个程序的每个源文件转换成目标代码,然后各个目标文件由链接器捆绑在一起,形成一个单一而完整的可执行程序。

编译分为几个阶段:

  • 预处理阶段,执行宏展开,头文件包含等操作。

  • 词法解析。

词法规则

转义序列

转义序列表示
\a提醒/(警报)
\bBackspace
\f换页
\n换行
\r回车
\t水平制表符
\v垂直制表符
\'单引号
\"双引号
\\反斜杠
\?文本问号
\ooo八进制表示法的 ASCII 字符
\xhh十六进制表示法的 ASCII 字符
\xhhhh以十六进制表示法,则此转义序列用于常量宽字符或 Unicode 字符串的 Unicode 字符。例如,WCHAR f = L'\x4e00' 或 WCHAR b[] = L"The Chinese character for one is \x4e00"。

自有形式的源代码

  • 词法中不规定什么地方可以书写语句。

  • 词法中不规定一行写多少条语句。

  • 词法中不规定什么地方可以出现空格。

标识符

  • 标识符由字母、数字、下划线组成,不能用数字开头。

  • C语言虽然不限制标识符的长度,但是它受到不同编译器的限制,同时也受到操作系统的限制。例如在某个编译器中规定标识符前128位有效,当两个标识符前128位相同时,则被认为是同一个标识符。

  • 在标识符中,大小写是有区别的。

  • C 语言关键字不能做标识符。

关键字

C 语言这种一共有32个关键字:

关键字说明
auto声明自动变量
short声明短整型变量或函数
int声明整型变量或函数
long声明长整型变量或函数
float声明浮点型变量或函数
double声明双精度变量或函数
char声明字符型变量或函数
struct声明结构体变量或函数
union声明共用数据类型
enum声明枚举类型
typedef用以给数据类型取别名
const声明只读变量
unsigned声明无符号类型变量或函数
signed声明有符号类型变量或函数
extern声明变量是在其他文件正声明
register声明寄存器变量
static声明静态变量
volatile说明变量在程序执行中可被隐含地改变
void声明函数无返回值或无参数,声明无类型指针
if条件语句
else条件语句否定分支(与 if 连用)
switch用于开关语句
case开关语句分支
for一种循环语句
do循环语句的循环体
while循环语句的循环条件
goto无条件跳转语句
continue结束当前循环,开始下一轮循环
break跳出当前循环
default开关语句中的“其他”分支
sizeof计算数据类型长度
return子程序返回语句(可以带参数,也可不带参数)循环条件
posted @ 2019-09-15 10:11  youngliu91  阅读(230)  评论(0编辑  收藏  举报