一、什么是预处理器函数
二、什么是预处理器指令spa
三、预处理器指令it
四、宏指令io
五、宏函数编译
六、宏函数的优缺点class
七、条件编译指令变量
一、什么是预处理器gcc
• 预处理器是一个程序,用来处理源程序中的预处理指令。数据类型
• 一个程序在编译以前通常都要通过预处理。语法
二、什么是预处理器指令
• 以“#”开头的指令叫预处理指令
• 能够出如今任何位置,必须一行结束
• 若是要换行,须得用"\"来链接两行内容
三、预处理器指令
• 文件包含
#include <>#include “”
• 宏定义
无参宏定义
有参宏定义
• 条件编译
#if
#ifdef
#ifndef
#endif
#elif
#else
#undef
#if defined
四、宏指令
宏至关于文本的替换操做
• 语法格式:
-定义在函数的外面
-格式:#define PI 3.14
PI为宏的文本内容 在编译前将PI的内容替换成3.14
五、宏函数
• 语法格式: #define MianJi(r) PI*r*r
宏函数只是文本,只是至关于作了内容替换的操做,注意参数是没有数据类型
六、宏函数的优缺点
• 宏函数的优缺点
能够代码更简单、更容易,避免大量使用。
• 宏函数注意事项
– 宏函数中的参数必定要用括号括起来,以防止替换后的优先级问题。
– 宏函数的整个表达式也须要用括号括起来,以防止宏函数参于表 达式的运算
– 宏函数中的多条语句时,应写成复合语句,以防止重复定义变量。
– 调用宏函数时,不要将++,--的表达式作为参数传递,能够先++,--后调用,或者,调用后++,--,以防止在宏函数中重复地 计算++,--
– 宏函数也能够调用另外一个宏函数
七、条件编译指令
• 在代码中设置编译条件 根据编译条件进行代码的编译并运 行。(跨平台)
• 在编译文件的时候传入一个参数,根据参数就能够对代码进 行有选择的编译。
gcc -DZHAOBENSHAN main3.c
• 条件指令
#if 若是 #ifdef 若是定义
#ifndef 若是没定义 #elif 若是 //else if#else 不然 与 #if 对应关系
#endif 结束标识
#undef 取消宏和#define 定义宏
• 编译方式
根据参数编译
gcc -DXXX main.c
根据宏值(参数)
#define ZHAOBENSHAN 1
根据宏"值(逻辑)"进行编译
#if ZHAOBENSHAN==1