Re: [閒聊] 字串陣列各元素間少打逗號

看板C_and_CPP作者 (藍影)時間14年前 (2011/05/21 04:43), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串3/3 (看更多)

05/20 21:02,
我覺得問題是出在 C 的語法允許string literal接在一起
05/20 21:02

05/20 21:03,
其它語言就會吐 error 出來了
05/20 21:03
我看過比較「勉強」的用法是這樣,下面舉個小例 #include <stdio.h> #define SHOW #define N 100 int main() { int n=0; do{ printf("guess a number n" #ifdef SHOW "(ans=%d):",N #else ":" #endif ); scanf("%d\n", &n); }while(n!=N); return 0; } 實際上 #if-#else 會更雜, 看完上面這種 code 會很無奈,不知道是不是我太嫩, 而且怕改過放回去的時候會被罵幹嘛改別人這種地方 XD #ifdef SHOW printf("guess a number n(ans=%d):", N); #else printf("guess a number:"); #endif -- YouLoveMe() ? LetItBe() : LetMeFree(); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.73.222

05/21 08:26, , 1F
同意你的改法.. 不過string literal concatenation在寫macro
05/21 08:26, 1F

05/21 08:26, , 2F
的時候很方便
05/21 08:26, 2F

05/21 15:30, , 3F
我的看法是,一個逗號就換行,或著是""就換行
05/21 15:30, 3F

05/21 15:31, , 4F
= =有時後加入太多macro,反而不容易維護,尤其是我這種
05/21 15:31, 4F

05/21 15:32, , 5F
新手
05/21 15:32, 5F

05/22 01:19, , 6F
用macro寫metaprogramming 看起來就更不像C了
05/22 01:19, 6F
文章代碼(AID): #1Drj9o7g (C_and_CPP)
文章代碼(AID): #1Drj9o7g (C_and_CPP)