我正在尝试使用宏来处理C代码。
然而,我在使用标记连接时遇到了困难。
我有以下变量。
A, aA, bA, cA ...
同时,所有这些变量都用于同一个函数(情况有点复杂,所以仅传递变量是不够的)。
如果我只有
aA, bA, cA
然后,我可以使用以下宏来完成。
#define CALL_FUNCTION(GROUP) \
FUNCTION(GROUP##A);
However, because of
A
我不能再使用提到的宏了。 我尝试过,
#define CALL_FUNCTION(GROUP) \
FUNCTION(GROUP##A);
FUNCTION(NULL);
FUNCTION(a);
FUNCTION(b);
FUNCTION(c);
但实际上,NULL 不是空字符串,它无法正常工作。
FUNCTION("");
同样没有起作用。
还有其他的方法,例如:
#define CALL_FUNCTION(GROUP) \
if(GROUP == NULL)\
FUNCTION(A);\
else\
FUNCTION(GROUP##A);
然而,在这种情况下,我需要写更多的代码。
我搜索了很多,但是没有找到解决方案。有没有人知道如何使用空字符串进行令牌粘贴?
谢谢。