首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这样的宏定义函数如何定义

2013-04-20 
这样的宏定义函数怎么定义#define DEFFUNC(name)\void name()\{\#ifdef X\int y\#endif\}大家给我个能编

这样的宏定义函数怎么定义
#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 }

而预编译语句的#必须是第一个非空白字符(有可能要求,必须是第一个字符)
当然就不行了。别挑战一切了!

热点排行
Bad Request.