可以使用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数据结构。
提前致谢,
答案 0 :(得分:2)
我不相信。预处理器在编译器之前运行,编译器解释sizeof
。