使用define定义命名空间
#include <stdio.h>
#define MSG(sym) msg_ ## sym //提供命名空间
struct MSG(BoardConfiguration){
int num;
const char *name;
};
struct MSG(HostConfiguration){
int num;
const char *name;
};
int main()
{
MSG(BoardConfiguration) conf;
conf.num = 10;
conf.name = "Tom";
MSG(HostConfiguration) conf_h;
conf_h.num = 10;
conf_h.name = "Tom";
printf("Board: num:%d, Name:%s.\n", conf.num, conf.name);
printf("HOST: num:%d, Name:%s.\n", conf_h.num, conf_h.name);
return 0;
}

本文通过C语言示例展示了如何使用预处理器宏define来创建结构体的命名空间,以此实现结构体类型的重用并避免命名冲突。文中给出了BoardConfiguration和HostConfiguration两个结构体的具体实例化过程及打印其成员变量的方法。
1168

被折叠的 条评论
为什么被折叠?



