通常来说预处理器是由预处理指令(由#字符开头的一些命令)控制的,而大多数指令都属于以下三种类型之一:
1.宏定义:#define指令定义一个宏,#undef指令删除一个宏定义
2.文件包括:#include指令导致一个指定文件的内容被包含到程序之中
3.条件编译:#if、#ifdef、#ifndef、#elif、#else和#endif指令可以根据预处理器可以测试的条件来确定是将一段文本块包含到程序中还是讲其排除在程序之外
(*.除此之外还有#error、#line、#pragma等指令,相对来说这些指令较少用到)
对于众多预处理指令来说,有几条通用的规则适用于所有的预处理指令:
1.指令都以#开始。#符号不需要在一行的行首,只要它们之前只有空白字符就行;在#之后是指令名,接着是指令所需要的信息
2.在指令的符号之间可以插入任意数量的空格或水平制表符。如:
# define N 100
3.指令总是在第一个换行符处结束,除非明确地指明要延续。如果想在下一行延续指令,则必须在当前行的末尾使用\字符,如:
#define DISK_CAPACITY(SIDES *\ TRACKS_PRE_SIDE* SECTORS_PER_TRACK* BYTES_PER_SECTOR)
4.指令可以出现在程序中的任何地方。通常来说,我们长将#define和#include指令放在文件的开始,而其他指令则放在后面,甚至可以放在函数定义的中间
5.注释可以与指令放在同一行。实际上,在宏定义的后面加一个注释来解释红的含义是一种较好的习惯。
ps:例子来源于《C语言程序设计现代方法》
时间: 2024-10-09 21:51:42