1

我有以下代码:

#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,但是如何消除这个警告?

4

2 回答 2

0

如果可能,您可以使用符合 C99 的编译器,C99 中的限制是 4,095 个字符。

如果做不到这一点,请在运行时(一次)将字符串构建到全局字符数组中。

于 2013-04-08T09:07:44.257 回答
0

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)哦,刚刚看到第三个选项,使用不同的标准

第一个没用,解决不了问题

于 2013-04-08T09:11:11.243 回答