マクロ(#define)を使用してtypedefを作成するにはどうすればよいですか?
私はさまざまな理由で、マクロを使用してCでtypedefを実行しようとしています。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でやろうとしているということです。