我有以下代碼:如何在不收到此警告的情況下打印下列信息?
#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