数值型宏
cpp
#define PI 3.14f
常用
cpp
#define FILE_SUCCEEDS 0
主要用于方便阅读代码
表达式宏
cpp
#define GET_AREA(r) (PI * (r) * (r))
注意宏大写,表达式需要打括号,不然会出bug
语句宏
cpp
#define SHOW_ALL (argc)\
printf("**\r\n");\
printf("%d", argc);
说明性宏
cpp
#define EXPORT
兼容性宏
cpp
#define INT int
可以随时修改类型
语句块宏多函数操作
cpp
#define DEF_AREA(type)\
type Area_##type (type)\
{\
return (type)3.14f * r * r;\
}
#define CALL_AREA(type, r) Area_##type(r)
##为连接符
使用时需要声明再调用
cpp
DEF_AREA(int);
DEF_AREA(float);
//声明
int n = CALL_AREA(int, 96);
float f = CALL_AREA(float, 93.6f);
//调用
预编译宏
cpp
#if Test
printf("TEST\r\n");
#else
peintf("NO TEST\r\n");
#endif
使用方法
cpp
#ifdef TEST
//定义,进主函数,注意代码先后
编译选项宏
bash
cl /c /d "TEST" xxx.cpp
注意事项
编译器内置宏(无法取消)(一般用于排错)
cpp
#undef PI
//取消宏定义
__FILE__ 文件路径
__LINE__ 行号
_MSC_VER cl版本
宏防重包含
cpp
#ifdef