将sizeof()offsetof()宏的结果嵌入到const char数组中?

时间:2011-12-28 21:46:41

标签: string macros embed const sizeof

可以使用C预处理宏来生成下面的字符串,其中size是sizeof宏的结果吗?

const char testXmlElement [] = "< xs:element name="count" size="4" \>";

使用stringizing宏生成结果size =“sizeof(int)”而不是所需的结果,size =“4”。

#define xstr(s) str(s)
#define str(s) #s
const char testXmlElement[] =
"<element size=\"" 
xstr(sizeof(int))
"\""
" \\>";

我的目的是使用sizeof()和offsetof()宏在嵌入式微控制器应用程序中创建XML模式。生成的模式将用于将XML反序列化为嵌套的C数据结构。

提前致谢,

1 个答案:

答案 0 :(得分:2)

我不相信。预处理器在编译器之前运行,编译器解释sizeof