编译阶段打印宏内容

来源:互联网 发布:芭碧琪面膜怎么样 知乎 编辑:程序博客网 时间:2024/06/16 18:45
//两个用于测试的宏#define PI 3.1415926#define MAX(a,b) (a)>(b) ? (a) :(b)//首先定义两个辅助宏#define   PRINT_MACRO_HELPER(x)   #x #define   PRINT_MACRO(x)   #x"="PRINT_MACRO_HELPER(x) //编译阶段打印宏内容#pragma message(PRINT_MACRO(PI))#pragma message(PRINT_MACRO(PI2))#pragma message(PRINT_MACRO(MAX(a,b)))#pragma message(PRINT_MACRO(MAX(x,y)))


结果输出
note: #pragma message: PI=3.1415926  
//PRINT_MACRO中的两个x都被替换为PI,PRINT_MACRO_HELPER中的#x替换为宏PI的内容
note: #pragma message: PI2=PI2          
//PI2不存在的情况下PRINT_MACRO_HELPER将#x换做PI2
note: #pragma message: MAX(a,b)=(a)>(b) ? (a) :(b)
note: #pragma message: MAX(x,y)=(x)>(y) ? (x) :(y)

原创粉丝点击