[問題] 請問define的作用域?

看板C_and_CPP作者 (得我反思)時間14年前 (2011/07/12 16:29), 編輯推噓5(508)
留言13則, 7人參與, 最新討論串1/1
請問若是在程式開頭設定#define XXX YYY 這樣全域是看的到沒問題 但是如果在程式的中途也就是 function a(); #define XXX YYY function b(); 那這樣function a();看的到嗎? 查了兩派說法 一派是說#define在編譯的過程中是先行處理是全域都看的到的,不管寫在哪 也有人說不是,想請問一下何種正確@@? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.105.244.195

07/13 00:33, , 1F
用#undef 之後就沒了呀:D
07/13 00:33, 1F

07/13 00:34, , 2F
#define是預處理沒錯XD
07/13 00:34, 2F

07/13 00:36, , 3F
所以fun a()可以看的到#define XXX?
07/13 00:36, 3F

07/13 00:46, , 4F
我想你得先說清一點什麼叫做"看得到"...
07/13 00:46, 4F

07/13 00:47, , 5F
而且你的問題應該可以寫簡單的程式來驗證想法
07/13 00:47, 5F

07/13 00:48, , 6F
我的 #1CYo_ndS 這篇文也可以看一下看能不能釐清你的觀念
07/13 00:48, 6F

07/13 00:49, , 7F
#define 有點像字串取代 從define這行之後才會有效用
07/13 00:49, 7F

07/13 00:51, , 8F
http://codepad.org/l7I5zqL0 實驗一下就知道啦
07/13 00:51, 8F

07/13 00:52, , 9F
多打了一個分號 不過這邊無傷大雅= ="
07/13 00:52, 9F

07/13 01:07, , 10F
感謝LPH66以及各位的幫忙,我懂了!!
07/13 01:07, 10F

07/14 15:48, , 11F
結論是啥???'N' was not declared in this scope
07/14 15:48, 11F

07/14 15:51, , 12F
結論很明顯就是define之前是沒有作用的啊
07/14 15:51, 12F

07/14 16:33, , 13F
了解了 謝啦^^
07/14 16:33, 13F
文章代碼(AID): #1E77PJAp (C_and_CPP)