这样的宏定义函数怎么定义
#define DEFFUNC(name)\
void name()\
{\
#ifdef X\
int y;\
#endif\
}
大家给我个能编译的啊,上面这个不能编译
[解决办法]
#ifdef X
#define DEFFUNC(name)\
void name()\
{\
int y;\
}
#else
#define DEFFUNC(name)\
void name()\
{\
}
#endif
[解决办法]
只有
#define 预编译语句可以后跟续行符,连接很多语句。
其他都不可以的,因为预编译语句,必须单独占用一行。
#define DEFFUNC(name)\
void name()\
{\
#ifdef X\
int y;\
#endif\
}
相当于
#define DEFFUNC(name) void name(){#ifdef X int y; #endif }
宏展开后变成一行了,
void name(){#ifdef X int y; #endif }
而预编译语句的#必须是第一个非空白字符(有可能要求,必须是第一个字符)
当然就不行了。别挑战一切了!