看板 C_and_CPP 關於我們 聯絡資訊
事情是這樣的 我原本有個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... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.221.195
purpose:"12" "3" 變成 "123" 這常出現 05/20 19:19
james732:不過真的很難抓出來... XD 05/20 19:22
loveme00835:這件事情告訴我們不要把它寫死在程式裡, 甚至每一項要 05/20 19:24
loveme00835:斷行, 完全是習慣誤了你 05/20 19:24
purpose:明知道寫在程式碼裡面,不好把程式國際化,但就很懶 05/20 19:33
Ebergies:推樓上 LOL 05/20 19:42
james732:像這種情況"最理想"的做法應該是怎麼樣呢? 05/20 19:45
loveme00835:如果幾百年都不會改到這一段, 那寫死就好了, 不過看來 05/20 19:47
purpose:Linux 好像都存在 PO、MO 檔?Windows 就用 Resource 05/20 19:48
loveme00835:並不是, 作成外部設定檔還比較好加新東西, 還有就是像 05/20 19:48
purpose:或者乾脆簡單點,用文字檔,或者假掰一點,用XML 05/20 19:48
loveme00835:p 大說的, 多國語言轉換的問題 05/20 19:48
Bencrie:.po (gettext) 很方便啊 05/20 19:52
yauhh:加個函數檢查陣列長度 05/20 20:46
littleshan:我覺得問題是出在 C 的語法允許string literal接在一起 05/20 21:02
littleshan:其它語言就會吐 error 出來了 05/20 21:03
lwecloud:寫成ini檔也很方便 05/20 21:18
angleevil:~"~這個讓我想到ssprintf,少打一個',';我也花了兩小時 05/20 21:34
angleevil:以上,這個真的是很令人厭惡的錯誤,每一個逗號都要斷行? 05/20 21:36
loveme00835:沒錯! http://goo.gl/NgPPy 這樣就可以發現原PO還有忽 05/20 23:21
loveme00835:略最後多一個括號的warning, 這樣做在修改的時候多/少 05/20 23:22
loveme00835:幾個括號都是很明顯的差異. 如果覺得長到太難看, 那表 05/20 23:23
loveme00835:是這份其實是data檔而不是程式碼檔了! 編譯器為我們作 05/20 23:24
loveme00835:的事太多, 其他真的是靠我們自己小心了 05/20 23:25
loveme00835:二維以上要突顯結構的話, 還是不要隨意換行 05/20 23:27
loveme00835:強烈懷疑 p 大被盜帳號 XD 05/20 23:36
purpose:love大的潛台詞我都懂 05/20 23:40
loveme00835:看兩遍才知道你想表達是啥 XD 05/21 00:12
hateexam:這...purpose對這廣告台詞感到注意嗎... 05/21 00:37
holymars:問題出在string literal為什麼要設計可以連在一起= = 05/21 01:12
purpose:列印程式碼時,每行可放字數有限,利用這個機制就能把長字 05/21 01:20
purpose:串拆成多個,再讓編譯器自動連結。而且 #define 也可以用 05/21 01:21
purpose:這個方法,幫忙自動加上一些固定字串 05/21 01:22
purpose:http://pastie.org/1932751 突然想到這個範例 05/21 01:46
loveme00835:樓上正姐 05/21 01:55
loveme00835:有一種說法是說「儘量讓錯誤在編譯時期被發現」但如果 05/21 02:14
loveme00835:追求「極致可讀性」的話, 很多問題不用編譯就一清二楚 05/21 02:15
loveme00835:現在才發現我的錯字...是逗號不是括號 05/21 02:39
tropical72:# 懂,但我想問問那個 $ 是怎麼回事 XD 05/21 04:28
purpose:致敬某個叫 JavaScript 的語言 05/21 09:32
ilway25:http://codepad.org/sngbexG6 看過有人這樣寫 05/21 16:02