/* 预处理指令 : 宏定义 : 就是将代码中的宏名进行简单的替代,不进行任何运算; 不带参数的宏定义 : 基本格式 : #idefine 宏名 宏值 //程序预处理时,会将代码中,所有的宏名都替代为宏值; 宏名书写规范 : 全部大写,单词之间以"_"分隔; 注 : 切记红定义中,不要以";"结尾,原因在宏定义中默认宏名之后所有的内容均为宏值,因此,一旦以";"结尾,也会将其当做宏值处理; 带参数的宏定义 : 基本格式 : #define 宏名(形参) 宏值 //预处理时,会将接受的实参替代宏值中的形参,而后再将代码中所有的宏名以宏值替代; 形参 : 此处无需写形参的数据类型,因此没有任何意义; 应用 : 此时的宏值多为一行简单代码,而某一单一值; 注 : 如果在代码中,宏名被包裹在""中,则预处理时,宏名不会被宏值替代; 宏的作用域 : 自定义位置起至文件末尾; 提前结束宏的作用域 : #undef 宏名; 宏定义的应用场景 : 常用于记录一些频繁使用且繁琐的数据; 条件编译 : 当条件满足时,就将对应的代码块保留在程序中执行; 基本格式 : #if condition 代码块; #elif condition 代码块; #else 代码块; #endif //当某一个条件满足时,只保留该条件对应的代码块,其他至endif之间的代码块全部删除; 其他写法 : 第一种 : #ifdef 宏名 代码块; #else 代码块; #endif 第二种 : #ifndef 宏名 代码块; #else 代码块; #endif 条件编译的优点 : 1,节省内存,因为不满足条件的代码块均会被删除; 2,常用于调试过程,如当我们为qq写一个用户分组时,需要频繁登陆qq,以查看效果.因此,在调试过程中,我们就可以把自己的用户名,密码写入条件编译中的宏定义中,\ 以节省我们频繁登陆输入用户名,密码浪费的时间,而在上传应用后,只需修改一下条件,即跳转用户登陆; 文件包含 : 也即将其他文件复制替代本文件中文件包含那一行代码; #include <> //会先在编译环境下查找,找不到,再到系统环境下查找指定文件; #include "" //会现在当前文件目录下查找指定文件,找不到,再编译环境下查找,找不到,再到系统环境下查找指定文件; 注 : 重复导入头文件,会降低程序执行效率,因此可利用条件编译,写一个头文件卫士,一旦已经导入了该头文件,就不在重复导入; */
C语言之预处理指令
原创
©著作权归作者所有:来自51CTO博客作者师趣妮的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:Python之内置函数
下一篇:C语言之为数据类型定义别名
![](https://ucenter.51cto.com/images/noavatar_middle.gif)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
C语言之旅
C语言之旅
字符串 main函数 目标文件 -
C语言预处理指令
C语言预处理指令
操作符 字符串 #endif -
[PreProccess]C语言中预处理指令的使用
问题描述:预处理指令在C
预处理 c #define 字面量 #include -
[C语言] 预处理
预处理
预处理 -
C语言预处理
C语言预处理
#define 头文件 #endif -
CSharp(C#)语言_C#中的“预处理指令”
预处理指令什么是预处理指令基本规则预处理指令什么是预处理指令 源代码指定了程序的定义,预处理
c# 编程语言 编译器 预处理指令 #define