看板 C_and_CPP 關於我們 聯絡資訊
請教各位 以下兩段程式碼 到底是怎麼運作的阿.... 印出來的結果不一樣就算了 中斷點跑得順序讓我也完全不清楚發生了什麼事 請各位給予觀念上的指教 謝謝 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
shadow0326:用#if 09/29 15:16
shadow0326:另外如果一定要照你這樣寫的話 行為就是preprocessing 09/29 15:18
shadow0326:要獨立抽出來看 和if statement無關 09/29 15:19
QQ29:意思是說 就算 if (false) 他還是會define QQ嗎 compile time 09/29 15:24
QQ29:就先定義好了@@ 09/29 15:24
QQ29:所以第二個不管怎樣都印1....第一個根本跑不到 printf? 09/29 15:25
shadow0326:對 09/29 15:30
bibo9901:你用 gcc -E 就能看到真正編譯的code 09/29 17:13
aecho:@__@ 好有趣的codes 09/29 20:12
xatier:預處理會先做阿.... 09/30 12:44
priv:這個範例很有趣XD 09/30 12:55