Appearance
宏函数
c
#define SWAP(x, y) \
((x) = (x) ^ (y), \
(y) = (x) ^ (y), \
(x) = (x) ^ (y));- 利用宏在编译时候的替换,可以实现类似函数的功能
- 编写宏函数,尽量多使用括号,因为宏是进行直接替换的,不习惯用括号的话,小则编译语法错误,大则代码逻辑错误
- 区分 C++ 的内联函数
宏定义用于调试
cpp
#include <stdio.h>
#define NUMBER 3
int main() {
int a = 10;
#ifdef DEBUG
printf("我是一个程序猿, 我不会爬树...\n");
#endif
for(int i = 0; i < NUMBER; ++i) {
printf("hello, GCC!!!\n");
}
return 0;
}- 👆🏻️上面的代码中使用了
DEBUG宏,如果这个宏没有被定义,第 7 行printf不会被输出 - 而且你也不需要直接修改代码的方式去定义
DEBUG,在编译的时候加上-DDEBUG参数即可,例如gcc test.c -DDEBUG -o app,此时运行程序,会输出所有 debug 消息