环境
显而易见,在学习C语言之前,我们必须知道系统是如何“运行”我们所编写的代码。
ANSI C中,存在两种不同的环境。
- 翻译环境
- 源代码被转换成可执行的机器指令。
- 执行环境
- 可执行的机器指令在系统中执行。
由于执行环境过于复杂,这里只研究翻译环境。
如图所示,下图介绍了翻译环境的具体细节(汇编语言等内容被忽略)
尽管ANSI C并没有制定文件的取名规则,但大多数环境都存在必须遵守的文件名命名约定。
- C源代码通常保存以.c扩展名命名的文件中。
- 由#include指令包含到C源代码的文件被称为头文件,通常具有扩展名.h。
- 对于目标文件名,不同的环境具有不同的约定。
- UNIX系统中,其扩展名是.o。
C词法规则
一个ANSI C程序由函数和声明(和注释)组成。
- 函数定义了需要执行的工作。
- 声明描述了函数和函数将要操作的数据类型。
- 注释可以散布于源文件的各个地方。
字符
ANSI C标准并没有规定C环境必须使用哪种特定的字符集,但是其规定了字符集必须包含:
- 英语所有的大写和小写字母。
- 数字0到9。
- 常用的符号。
但是,当我们在编写C程序时,我们希望在一些地方使用上述规定包含的字符,结果却无法如愿。
例如,我们希望在一个字符串常量中使用双引号“ ”,但是双引号用于定界字符串常量,这时该怎么办呢?
ANSI C定义了几个转义序列用于克服这个难题。
转义序列有一个反斜杠\加上一个或多个其他字符组成,代表反斜杠后面的那个字符。
- \”用于表示一个字符串常量内的双引号。
- \’用于表示字符常量’。
- \ \用于表示一个反斜杠。
- \n换行符
- \t制表符
注释
C语言的注释以字符/ * 开始,以字符 * /结束,中间可以包含除* /以外的任何字符。
在源代码中,一个注释可以跨越多行,但是不能嵌套在另一个注释中。
所有的注释都会被预处理器拿掉,取而代之的是一个空格。
标识符
标识符就是变量、函数、类型的名字。
- 标识符由大小写字符、数字和下划线组成,但是不能以数字开头。
- C语言是一种大小写敏感的语言,所以标识符中注意区分大小写。
- C语言关键字是被保留的,它们不能作为标识符使用。
C程序风格
因人而异,学习优秀的源代码的程序风格。