宏是关键字define定义,一种简单的字符串替换方式,可以分为带参数和不带参数两种。
1.#和##在宏中的使用
对参数x使用#引用,实现对参数器字符数组化预处理,如果调用ERROR_LOG(“error log”),则输出Error:“error log“
使用##,预处理器实现字符串之间分隔连接方式,如果调用TYPE(int,”user”), 则预处理之后int name_int_type,这样实现了变量的类型定义
可以使用这种方式来实现创建一个数组
2.do…while
使用do…while…来包裹,实现语言结构的独立
3.函数宏
调用lang_init(),实现c_init()函数的调用
4.宏参数
调用x = min(a, b);实际上是x = ((a) < (b) ? (a) : (b)); 执行
5.预定义宏
COUNTER,GFORTRAN,GNUC,GNUC_MINOR,GNUC_PATCHLEVEL,GNUG,STRICT_ANSI,VERSION,NO_INLINE,GNUC_GNU_INLINE,OPTIMIZE
等等
6.#ifdef …. #else …. #if … #endif
7.PHP中常见的宏