How can I create a typedef using a macro (#define)?
I am, for various reasons, trying to use a macro to do typedef’ing in C. Something along the lines of templates for C++.
As an example, I would expect the preprocessor to expand the #define and typedef a struct whose “content” member is of type 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';
Apparently that is not the case. Is it possible to do these sort of things in C at all, or is the only way a C++ template?
To preempt questions along the lines of “why don’t you just use a C++ template?”. The answer is that I’m trying to do it in C because it’s fun.
I posted in a comment because I thought it was too trivial, but here it is: