[問題] define 語法觀念求助

看板C_and_CPP (C/C++)作者 (我愛阿蓉)時間14年前 (2011/09/29 15:06), 編輯推噓1(1010)
留言11則, 6人參與, 最新討論串1/2 (看更多)
請教各位 以下兩段程式碼 到底是怎麼運作的阿.... 印出來的結果不一樣就算了 中斷點跑得順序讓我也完全不清楚發生了什麼事 請各位給予觀念上的指教 謝謝 1. if( 0) #define QQ 1 printf("%d",QQ); 2. if( 0) { #define QQ 1 } printf("%d",QQ); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.64.222

09/29 15:16, , 1F
用#if
09/29 15:16, 1F

09/29 15:18, , 2F
另外如果一定要照你這樣寫的話 行為就是preprocessing
09/29 15:18, 2F

09/29 15:19, , 3F
要獨立抽出來看 和if statement無關
09/29 15:19, 3F

09/29 15:24, , 4F
意思是說 就算 if (false) 他還是會define QQ嗎 compile time
09/29 15:24, 4F

09/29 15:24, , 5F
就先定義好了@@
09/29 15:24, 5F

09/29 15:25, , 6F
所以第二個不管怎樣都印1....第一個根本跑不到 printf?
09/29 15:25, 6F

09/29 15:30, , 7F
09/29 15:30, 7F

09/29 17:13, , 8F
你用 gcc -E 就能看到真正編譯的code
09/29 17:13, 8F

09/29 20:12, , 9F
@__@ 好有趣的codes
09/29 20:12, 9F

09/30 12:44, , 10F
預處理會先做阿....
09/30 12:44, 10F

09/30 12:55, , 11F
這個範例很有趣XD
09/30 12:55, 11F
文章代碼(AID): #1EX1aJTR (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1EX1aJTR (C_and_CPP)