我有以下代码:如何在不收到此警告的情况下打印下列信息?
#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,但是如何去掉这个警告?
我有以下代码:如何在不收到此警告的情况下打印下列信息?
#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,但是如何去掉这个警告?
1)分解成2串 的#define一个 “ABC” 的#define B “高清” 的#define C(AB) 现在无论printf(a b)
或printf(c)
将工作
2)刚刚取消警告(代码工作,是不是?:))(http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html)
3)喔刚才看到的第三选项,可以使用不同的标准
1日一个是没有用的,它不会解决问题
我怀疑第一个技巧是否会起作用,因为标准限制了*连接后的文字*中的字符数。 ''abc“'和'”def“'会超出限制,但粘贴的文字'”abc“”def“'会超出限制。第二个选项看起来很好,但第三个选项也很好。 – dasblinkenlight 2013-04-08 09:14:40
@dasblinkenlight,谢谢指出,第1个选项没有用,预处理本身将连接字符串并替换它们。 – abasu 2013-04-08 09:17:34
使用'printf(“%s%s”,a,b)'应该工作,虽然:) – dasblinkenlight 2013-04-08 09:18:47
如果可能,您可以使用符合C99的编译器,C99中的限制为4,095个字符。
失败的是,在运行时(一次)将字符串构建到全局字符数组中。
缩短字符串... – 2013-04-08 08:57:22
您忘记了格式说明符。 – 2013-04-08 09:02:09
是的,但它是相同的警告 – user2131316 2013-04-08 09:05:07