我有以下代码:
#define HELLO
"this is a command to ........." //this macros is very long, and it is greater than length 509
然后我用printf(HELLO);
它打印出来,但我收到以下警告:
警告:字符串长度'526'大于长度'509' ISO C90编译器需要支持,我知道字符串太长,大于509,但是如何消除这个警告?
如果可能,您可以使用符合 C99 的编译器,C99 中的限制是 4,095 个字符。
如果做不到这一点,请在运行时(一次)将字符串构建到全局字符数组中。
1) 将其分成 2 个字符串 #define a "abc" #define b "def" #define c (ab) 现在两者都printf(a b)
可以printf(c)
工作
2)只是抑制警告,(代码正在工作,不是吗??:))(http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html)
3)哦,刚刚看到第三个选项,使用不同的标准
第一个没用,解决不了问题