这三种包括:宏定义、、
宏定義是提供的三种预处理的其中一种。宏定义和操作符的区别是:宏定义是替换不做计算,也不做表达式求解
宏定义又称为宏代换、宏替换,简称“宏”
)工作也叫做宏展开:将宏名替换为字符串。
掌握"宏"概念的关键是“换”一切以换为前提、做任何事情之前先要换,准确理解之前就要“换”
即在对相关命令或语句的含义和功能作具体分析之前就要换:
(2)使用宏可提高程序的通用性和易读性,减尐不一致性减少输入错误和便于修改。例如:
(3)预处理是在编译之前的处理而编译工作的任务之一就是语法检查,预处理不做语法檢查
(4)宏定义末尾不加分号;
(5)宏定义写在函数的花括号外边,
为其后的程序通常在文件的最开头。
(8)字符串( " " )中永远不包含宏
(9)宏定义不分配内存变量定义分配内存。
除了一般的字符串替换还要做参数代换
(2)宏名和参数的括号间不能有空格
(3)宏替换只作替换,不做计算不做表达式求解
(4)函数调用在编译后程序运行时进行,并且分配內存宏替换在编译前进行,不分配内存
在C语言中文件包含是指一个源文件可以将另一个源文件的全部内容包含进来
该命令的作用是在預编译时,将指定源文件的内容复制到当前文件中
1.使用双引号,系统首先到当前目录下查找被包含的文件如果没找到,再到系统指定嘚"包含文件目录"(由用户在配置环境时设置)去找
2.使用尖括号:直接到系统指定的"包含文件目录"去查找。
通常使用双引号比较保险
条件编译指令将决定哪些代码被编译,而哪些是不被编译的
如果表达式1真,则编译语句段1否则判断表达式2;如果表达式2为真,则编译语句段2否则编译语句段3
(1)#ifdef的┅般形式:
作用:如果在此之前已定义了这样的宏名,则编译语句段
作用:如果在此之前没有定义这样的宏名,则编译语句段