如何使用宏 (#define) 创建 typedef?
由于各种原因,我正在尝试使用宏在 C 中进行 typedef'ing。类似于 C++ 的模板行。
作为一个例子,我希望预处理器扩展#define
和typedef
其struct
“内容”成员的类型为char
:
#define DEFINE_FOO_TYPE(content_type__, content_type_name__) \
typedef struct { \
content_type__ content; \
} content_type_name__
DEFINE_FOO_TYPE(char, foo_t);
foo_t foo_var;
foo_var.content = 'g';
显然情况并非如此。是否有可能在 C 中做这些事情,或者是 C++ 模板的唯一方式?
抢占“为什么不使用 C++ 模板?”之类的问题。答案是我试图用 C 来做,因为它很有趣。