关于宏定义问题
本帖最后由 yitian542 于 2012-12-25 12:04:09 编辑 定义宏操作:类似于函数 Add(int a, int b)功能;
开始宏定义:
#define MYADD(A,B) {A+B;}
再定义:
#define MYADDT(S) {ADD(S);}
使用:
int a =1, b=3, c;
c = MYADDT(a, b);
这里想问如何让0宏定义中S能 扩展成 使用时的a, b;
不科学的表示 就是让 S = a, b;
[解决办法]
有时用宏实现不了的复杂预处理需要用自己编写程序使用“代码生成(Code Generation)”技术来完成。
[解决办法]
#define MYADDT(args...) ({ADD(## args);})这样?
[解决办法]
恕我不能理解楼主的意思,估计是想这种效果:
#、##、#@在#define中的用法