提问人:JerSci 提问时间:4/23/2022 最后编辑:Jonathan LefflerJerSci 更新时间:8/23/2022 访问量:175
如何将两个 X-Macro 合并在一起?
How can I merge two X-Macros together?
问:
我有很多重复的代码,需要我在某些函数或某些操作中频繁使用不同的数据集。即如下图所示(数字和字母只是占位符,我需要做的就是使用 X 宏将两组数据串在一起)
a = 1
a = 2
a = 3
a = 4
.
.
.
然后
b = 1
b = 2
b = 3
.
.
.
和
c = 1
c = 2
c = 3
.
.
.
我试图创建一个 X-macro,将以下两个 X-macro 合二为一
//X-macro 1
#define SET_1 \
X(a) \
X(b) \
X(c) \
//X-macro 2
#define SET_2 \
X(1) \
X(2) \
X(3) \
X(4)
有什么帮助吗?
答:
0赞
chqrlie
4/23/2022
#1
这种方法怎么样:
#define X_abc(X,X2) \
X(a,X2) \
X(b,X2) \
X(c,X2)
#define X_1234(x,X2) \
X2(x,1) \
X2(x,2) \
X2(x,3) \
X2(x,4)
#define SET(x,y) x = y;
#define DEFINE(x,y) int x = y;
X_abc(X_1234,DEFINE)
评论
0赞
ro88
3/3/2023
当我们有不同的元素数量时,我们可以做上述方法吗?#define X_abc(X,X2) \ X(a,X2) \ X(b,X2) \ X(c,X2)
#define X_1234(x,X2) \ X2(x,1) \ X2(x,2) \ X2(x,3)
0赞
chqrlie
3/3/2023
@ro88:是的,当然,我认为这没有问题
评论
regA = regA; regA = regB; regA = regC; regA = regD;
regB = regA; regB = regB; regB = regC; regB = regD;
regB
regA
regA
regA