|
2009/2/17 下午 06:11:11
關於下列前置處理器,我只知道前面1~4點的意思,5、6點不太懂,不知有人是否可以解釋一下, 如果能舉例說明就更好了,謝謝。 1.#if (和平常的if功能一樣) 2.#endif (結束if的範圍) 3.#else (和平常的else功能一樣) 4.#elif (如同else if) 5.#ifdef 6.#ifndef
|
|
|
2009/2/17 下午 06:31:57
#ifdef 前置處理器有定義
#ifndef 前置處理器沒有定義
============================== #define _Debug 0
#ifdef _Debug #define Moad "Debug Mode" #endif
#ifndef _Debug #define Moad "Release Mode" #endif
|
|
|
2009/2/17 下午 06:44:27
>1.#if (和平常的if功能一樣) >2.#endif (結束if的範圍) >3.#else (和平常的else功能一樣) >4.#elif (如同else if) >5.#ifdef >6.#ifndef
不好意思...經過剛剛的努力爬文和看書後,我終於看懂了。 原本想把這篇給移除,不過找不到移除的地方,想說或許還有人不懂,所以就自己來解答.... 要講第5、6點前,必須先介紹另外兩個前置處理器 #define #undef #define 大家應該都知道它是用來定義的,而 #undef 是用來消除定義 例如: #define TURBOC int main() { #ifdef TURBOC (因為上頭有定義TURBOC所以此條件成立) printf("Borland C compiler.\n"); #endif (結束#ifdef) #undef TURBOC (消除TURBOC定義) #ifndef TURBOC (因為TURBOC沒被定義所以此條件成立) printf("MircoSoft C compiler.\n"); #endif (結束#ifdef) }
執行結果 : Borland C compiler. MircoSoft C compiler.
|
|
|
2009/2/17 下午 07:51:47
#ifndef #define fgfhggfjhgjh 0x6476467 #define yityiryiri 0x457645765 #else #if cc==1 #elif dd ==2 #undef yityiryiri #else #ifdef cc #undef cc # # #endif #endif #endif
|
|
|
2009/2/17 下午 09:33:40
補充一下:
#ifdef XXX 等於 #if defined(XXX) 或 #if defined XXX
#ifndef XXX 等於 #if !defined(XXX) 或 #if !defined XXX
程式員可以很好的利用這個特性. 比方說, header guard 或比較固定的定義如 _DEBUG 用 #ifdef. 程式本身所使用的定義用 #if defined. 這樣, 在搜尋原始碼的時候可能會方便些.
|
|
|
2009/2/18 下午 01:24:18
這些 前置處理器, 認識它們必須的, 但是, 初學者最好不要使用它們, 因為 C++ 本身的句法結構已經足夠去滿足一般的管理需求.
或是說, 前置處理器 的好處就是它們的靈活性, 但是, 它靈活的原因, 是因為它架構鬆散, 對程式開發和維護的影響難以預計. 就算是經驗老到的編程人員, 使用它們時都是戰戰兢兢的.
|
|
|
2009/2/18 下午 03:09:24
謝謝大家的回答和補充
>這些 前置處理器, 認識它們必須的, 但是, 初學者最好不要使用它們, 因為 C++ 本身的句法結構已經足夠去滿足一般的管理需求. > >或是說, 前置處理器 的好處就是它們的靈活性, 但是, 它靈活的原因, 是因為它架構鬆散, 對程式開發和維護的影響難以預計. 就算是經驗老到的編程人員, 使用它們時都是戰戰兢兢的.
恩恩 我是因為看了一些從網路上download下來的程式碼 裡面有寫,所以才來找找資料 謝謝你的教導
|
|
|
|
|
|
C++ |
 |
|
|
專家等級 |
評價 |
|
|
一代宗師 |
10000 |
|
|
曠世奇才 |
5000 |
|
|
頂尖高手 |
3000 |
|
|
卓越專家 |
1500 |
|
|
優秀好手 |
750 |
|
|
|
|
|
|
|
|
|
Microsoft Internet Explorer
6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/ |
|
|