→ Schottky:if (WIN32) {} 裡面若是包含了不存在 Windows 上的 10/17 23:15
→ Schottky:function call 或 include 不存在的 .h 會有 error 10/17 23:16
→ kumusou:if(WIN32) 如果沒定義呢? 邊議會錯吧! 10/17 23:21
→ kwk22:if() 裡面的expression沒定義, compiler就不會過吧 10/17 23:25
→ diabloevagto:兩個是在不同時候處理的,差蠻多的喔 10/17 23:31
→ diabloevagto:#的是直接判斷有無,有就把程式碼包進來,沒有就拿掉 10/17 23:40
→ diabloevagto:if 是在執行階段才判斷,如果有定義就一樣,沒定義 10/17 23:40
→ diabloevagto:compiler就會出錯,不像#會直接忽略 10/17 23:40
→ nikeasyanzi:感謝樓上幾位跟cutekid 大 熱心告知 10/17 23:46
→ nikeasyanzi:所以 應該是用If-else 比較好囉? 10/17 23:47
→ nikeasyanzi:畢竟complier 可以幫我偵錯? 是這樣嗎XD 10/17 23:48
→ leiyan:測試的時候#是很好用的 10/17 23:55
→ azureblaze:沒有哪個比較好 用途根本不一樣 10/18 00:14
→ kikiqqp:#if比較偏向於編譯器虛指令 10/18 00:54
→ MOONRAKER:#if根本不是個指令 偏向何謂也 10/18 01:17
推 plover:preprocessor 完才會進 compiler,不用想奇奇怪怪的名詞 10/18 02:22
→ plover:這是 C/C++ 很了不起的設計 XD 10/18 02:23
→ plover:通常會看 _WIN32 有沒有被定義來決定 OS 是不是 Windows 10/18 02:26
→ diabloevagto:兩個不同的東西怎麼不比....... 10/18 09:42
→ diabloevagto:怎麼能比 10/18 09:43
→ kikiqqp:上面或許真的沒遇過真的吃#開頭指令的詭異C編譯器 XD 10/18 10:37
推 littleshan:preprocessor是很糟糕的設計,但畢竟是數十年前的產物 10/18 12:07
推 littleshan:新的語言多半不再有preprocessor,全部給compiler包辦 10/18 12:12
推 Bencrie:咦 那不就是有 preprocessing 功能的 compiler 嗎 XD 10/18 19:28
推 yvb:#pragma 給誰看? 10/18 20:14
→ sardine:#if在cross compiler用途很大 10/19 06:10
→ rick68:前置除理器優先處理在前,runtime 的條件判斷式則編譯在後 11/24 17:42