宏替换
以#开头的是c预处理命令,#define是宏定义命令,一般形式
#define string1 string2
表示吧\把源代码中的所以string1都换成string2,在宏定义时,如果一行写不下,\表示续行符,然后另起一行写
只要一个宏被定义了,其后的define可以引用这个宏
define在定义有参数的宏替换时,类似于定义函数
在定义具有参数的宏时,宏扩展部分要加括号
定义宏和函数的不同之一在于调用时间不同,一个是编译之前.一个是运行时
在定义有参数的宏时,宏扩展部分要加上括号,就是在变量和变量之间加上括号,否则在运算时可能会出现错误结果
文件包含,就是#include"文件名",也可以用<>,其中""表示先在当前目录中寻找所要的文件,找不到的话再到一系列系统预先设定的目录中去寻找,而<>则跳过了在当前目录中寻找的步骤,直接去系统设定的目录下寻找
我们在分块编译的大程序中,可以在一个文件中定义多个符号常量,然后用#include命令直接引用该文件从而提高工作效率:
条件编译
我们在编译时,有时希望只有满足我们要求的部分才编译,否则不参与编译,这样就要用到条件编译
条件编译的几种形式
#if 常量表达式
程序段
#endif
其作用是若常量表达式为真,执行程序段,否则部执行,常量表达式不能有变量组成,只能由常量和宏组成
同样条件编译中也存在着if else和if elif等结构,而且条件编译还可以用宏来代替常量表达式,使判断依据为宏是否定义
#ifdef 宏名
程序段
#endif
也可以使用udef来表示若宏未定义执行下列程序段
以#开头的是c预处理命令,#define是宏定义命令,一般形式
#define string1 string2
表示吧\把源代码中的所以string1都换成string2,在宏定义时,如果一行写不下,\表示续行符,然后另起一行写
只要一个宏被定义了,其后的define可以引用这个宏
define在定义有参数的宏替换时,类似于定义函数
在定义具有参数的宏时,宏扩展部分要加括号
定义宏和函数的不同之一在于调用时间不同,一个是编译之前.一个是运行时
在定义有参数的宏时,宏扩展部分要加上括号,就是在变量和变量之间加上括号,否则在运算时可能会出现错误结果
文件包含,就是#include"文件名",也可以用<>,其中""表示先在当前目录中寻找所要的文件,找不到的话再到一系列系统预先设定的目录中去寻找,而<>则跳过了在当前目录中寻找的步骤,直接去系统设定的目录下寻找
我们在分块编译的大程序中,可以在一个文件中定义多个符号常量,然后用#include命令直接引用该文件从而提高工作效率:
条件编译
我们在编译时,有时希望只有满足我们要求的部分才编译,否则不参与编译,这样就要用到条件编译
条件编译的几种形式
#if 常量表达式
程序段
#endif
其作用是若常量表达式为真,执行程序段,否则部执行,常量表达式不能有变量组成,只能由常量和宏组成
同样条件编译中也存在着if else和if elif等结构,而且条件编译还可以用宏来代替常量表达式,使判断依据为宏是否定义
#ifdef 宏名
程序段
#endif
也可以使用udef来表示若宏未定义执行下列程序段