C进阶——宏定义

宏定义

#define是预处理器处理的单元实体之一

#define定义的宏可以出现在程序的任意位置 

#define定义之后的代码都可以使用这个宏

宏定义宏常量

#define定义的宏常量可以直接使用

#define定义的宏常量本质为字面量(并不占用内存,与const 常量区别)

#define宏常量和const常量的区别

https://www.runoob.com/note/12963C++ 宏定义 #define 和常量 const 的区别

宏定义表达式

#define 表达式的使用类似函数调用

#define 表达式可以比函数更强大 

#define 表达式比函数更容易出错

https://blog.csdn.net/zhemingbuhao/article/details/88999657C语言 -- 宏定义中使用语句表达式和预处理器运算符

https://www.cnblogs.com/muzinian/archive/2012/11/25/2787929.html

 

!!!宏表达式被预处理器处理,编译器不知道宏表达式的存在

!!!宏表达式用“实参”完全替代形参,不进行任何运算

!!!宏表达式没有任何的“调用”开销

!!!宏表达式中不能出现地柜定义

宏定义打常量或表达式是否有作用域限制

常见的内置宏

C进阶——宏定义_第1张图片

小结

预处理器直接对宏进行文本替换

宏使用时的参数不会进行求值和运算

预处理器不会对宏定义进行语法检查

宏定义时出现的语法错误只能被编译器检测

宏定义的效率高于函数调用

宏的使用会带来一定的副作用

 

 

你可能感兴趣的:(c语言剖析)