有可能以某种方式对一个宏参数进行子串? 我面临以下问题。我有类似
的东西#define READ(Name) structure.##Name.value
这个宏将使用类似PREFIX_Name的方法调用,并且在结构中有没有PREFIX的名称。所以我需要照顾那个前缀。我该怎么做?
答案 0 :(得分:0)
最好的选择显然不是那样调用宏。第二个最佳选择是重命名结构成员。
错误的选项,我能想到的最不好的选择是为每个结构成员编写一个宏:
#include <stdio.h>
typedef struct { int x; int y;} foo;
#define PREFIX_x_FIXER structure.x
#define PREFIX_y_FIXER structure.y
#define READ(Name) Name##_FIXER
int main (void)
{
foo structure;
READ(PREFIX_x) = 5;
printf("%d\n", READ(PREFIX_x));
}