用宏会实现类似这样的效果么
用宏能实现类似这样的效果么?写了一段代码C/C++ code#include stdio.h#ifdef READ#define CONFIG(xx){ p
用宏能实现类似这样的效果么?
写了一段代码
C/C++ code#include <stdio.h>#ifdef READ#define CONFIG(xx) { printf("READ: %s\n", xx); }#elif defined(WRITE)#define CONFIG(xx) { printf("WRITE: %s\n", xx); }#endif#define DO() CONFIG("aa"); CONFIG("bb");int main(){ #define READ DO() #undef READ #define WRITE DO(); return 0;}
希望在main中先以READ模式展开DO 再以WRITE的模式展开DO ,
但以上的代码是达不到这样的目的的.
有简单的办法么?
[解决办法]分一个文件出来 xxx.h
#ifdef READ
#define CONFIG(xx) { printf("READ: %s\n", xx); }
#elif defined(WRITE)
#define CONFIG(xx) { printf("WRITE: %s\n", xx); }
#endif
#define DO() CONFIG("aa"); CONFIG("bb");
然后:
int main(){
#define READ
#include "xxx.h"
DO()
#undef READ
#define WRITE
#include "xxx.h"
DO();
return 0;
}
[解决办法]inlcude 拼写错误, 是 include
[解决办法]