看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《Arton0306 (Ar藤)》之銘言: : 事情是這樣的 : 我原本有個char二維陣列 如下 : const char cmdName[][30] = {"Conn", "Send", "A15E", "Enter", "Ex", : "r slp", "rwake", "printRx" , "a song", "All", : }; : 後來要改裡面的字 如下 : const char cmdName[][30] = {"Conn", "Send", "A15E", "Enter", "Send2" : "r slp", "rwake", "printRx" , "a song", "All", : }; : 結果compile 沒error 也沒warning : 就讓我過了 : 因為以為是別的地方造成錯誤 : 於是花了我將近2個小時在debug... 這個在 Expert C Programming 裡面有講到 我忘了細項 事情是這樣的 在很久很久以前 string literal 是不能直接串接的 so 那個時候 你要表達一段 大篇幅的文字要這樣寫 char *pStr = "1234567890\ 0987654321\ abcdefghijk\ lmnopqrst"; 但是... 要表達串接, \後面 不能有任何空格 or 符號 不然compiler會誤認 \(space) 其實是要 (space)的意思 然後就錯了~ 到了ANSI C的時候 把string literal 串接 納入標準 so 上面的string可以寫成 char *pStr = "1234567890" // "之後 想空 想Tab 隨你... "0987654321" "abcdefghijk" "lmnopqrst"; ... 然後 我就忘記了 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.26.182.77
littleshan:也只有C這種沒有字串運算的語言才需要出此下策了... 05/21 03:23
karcher:推樓上 05/21 20:46