C语言中宏的用法
总结一下C语言中宏的一些特殊用法和几个容易出错的地方。由于本文主要参考GCC文档,某些细节在别的编译器可能有细微差别。
宏基础
宏仅仅是在C预处理阶段的一种文本替换工具,编译完之后对二进制代码不可见。基本用法如下:
标示符别名
#define BUFFER_SIZE 1024
预处理阶段,foo = (char *) malloc (BUFFER_SIZE);会被替换成foo = (char *) malloc (1024);
宏体换行需要在行末加反斜杠\
#define NUMBERS 1, \
2, \
3
预处理阶段int x[] = { N......