2017-04-03 50 views
1

的Win7 SP1 32位,的Code Composer Studio V6.1(我想他们正在使用gcc)Ç的#define宏字符串concatination

我似乎有一些麻烦让魔术顺序做以下...

我想写入的格式的预处理器#define指令:

(伪码)

#define extn(x) extern uint16_t str_#x 

然后使用它,因此:

extn(hello); 

然后预处理后,有结果的样子......

extern uint16_t str_hello; 

本文在维基百科C preprocessor状态:

“你不能用其他文字结合了宏参数和字符串化这一切一起。但是,您可以编写一系列相邻的字符串常量和字符串化的论点:那么C编译器将所有相邻的字符串常量合并成一个长字符串“

感谢您的帮助,

马克

回答

1

。你想要的是串联而不是字符串化因此,使用##

#define extn(x) extern uint16_t str_##x