/ 预处理命令 / 宏定义 / 一般形式:#define 宏名 字符串 # 表示这是一条预处理命令 宏名是一个标识符,必须符合C语言标识符的规定 字符串可以是常数、表达式、格式化字符串等 / 注意: (1)如果在串中含有宏名,则不进行替换 (2)如果串长于一行,可在行末尾用"\"续行 (3)#define 出现在程序中函数的外面,宏名的有效范围为整个源文件 (4)可以用#undef 终止宏定义的作用域 (5)宏定义时参数要加括号,如不加括号,有时会引起错误 (6)宏扩展必须使用括号来保护表达式中低优先级的操作符
/ #include 指令 / 在一个源文件中使用#include 指令可以将另一个源文件的全部内容包含进来,且被读入的源文件必须使用双引号或者尖括号括起来 / 双引号与尖括号的区别 尖括号:系统到存放C函数库头文件所在的目录中寻找要包含的文件 双引号:系统先在用户当前目录中寻找要包含的文件,若找不到,再到存放C函数库头文件所在的目录中寻找要包含的文件[在双引号中给出文件路径] / 头文件 / 一般情况下,可将如下内容放入 .h 头文件中 (1)宏定义 (2)结构、联合和枚举声明 (3)typedef 声明 (4)外部函数声明 (5)全局变量声明
/ 条件编译 / 一般情况下,源程序中所有的行都参加编译,但有时只希望对一部分内容在满足一定条件时才进行编译,就需要使用一些条件编译命令 / #if 条件编译指令 (1) #if 参数表达式 程序段 #endif (2) #if 参数表达式1 程序段1 #else #if 参数表达式n 程序段n #endif(n个) (3) #if 参数表达式1 程序段1 #elif 参数表达式n 程序段n #endif 如果参数表达式为真,则编译#if 和 #endif 之间的程序段,否则跳过不编译 / #ifdef 条件编译指令 #ifdef 宏替换名——如果宏替换名已被定义,则对语句段进行编译 #ifndef 宏替换名——如果宏替换名未定义,则对语句段进行编译
/ #line 条件编译指令 #line 用于改变 _LINE_ 与 _FILE_ 的内容,_LINE_ 用于存放当前编译行的行号,_FILE_ 用于存放当前编译的文件名 #line 行号["文件名"]
/ #pragma 条件编译指令 #pragma 的作用是设定编译器的状态,或者指示编译器完成一些特定的操作 #pragma 参数 参数包括: (1) Message: 在编译信息输出窗口中输出相应的信息 (2) code_seg: 设置程序中函数代码存放的代码段 (3) once: 保证头文件被编译一次
/ 预定义宏名 _LINE_ 当前被编译代码的行号 _FILE_ 当前源程序的文件名称 _DATA_ 当前源程序的创建日期 _TIME_ 当前源程序的创建时间 _STDC_ 判断当前编译器是否为标准C,若其值为1表示符合,否则不符合
|
请发表评论