宏展开,自动声明变量

我想写这么一个宏,
M_B(1, 5)

展开后自动生成
int s1;
int s2;
int s3;
int s4;
int s5;

s表示可以在数字前面带的任意指定字符串。请有经验的指点一下。
还要写一个
M_E(1, 5)
展开后自动生成
clean(s1);
clean(s2);
clean(s3);
clean(s4);
clean(s5);
M_B和M_E配对使用,目的是为了模拟c++的构造函数和析构函数。
谢谢了!!!

作者: lood339   发布时间: 2011-06-14

这是不行的,因为宏替换内容属于token,而s1、s2这些东西属于identifier,一个非identifier的设施无法变成identifier。

使用switch代替吧。

作者: supermegaboy   发布时间: 2011-06-14