一般的任何一個正規的項目開發第一件事情要做的就是在開發環境上架一層自己的環境,主要包括類型定義、內存管理和文件管理。主要的目的是爲了代碼的可移植性和可維護性。
例如在標準C的環境下,16位處理器的int是16位,32位處理器的int卻是32位。如果我想用一個int值來做標記,定義其倒數第2位的意義,在處理bit的時候的代碼就沒法寫,因爲不知道到底應該把標記右移幾位才能到倒數第二位。這時候一個長度固定的變量是很重要的,例如我想要16位的值。這時就可以寫
//在32位平臺
#ifdef __WIN32__
#define INT short int
#else
//在16位平臺
#define INT int
#endif
以後就用INT好了,不用再擔心int到底是幾位。
另外一點就是語言本身的標準和編譯器廠商對標準的支持。以C++爲例,直到98年纔出臺第一個標準,在那之前不同編譯器的C++有細節上的不同。其中之一就是bool值。其實在標準出現之後,編譯器廠商也不一定就支持全部標準。(一個最明顯的例子就是VC6)。這樣對於bool值,如果你用的是支持bool的C++編譯器,就可以
#define BOOL bool
對於不支持bool關鍵字的,就可以
#define BOOL unsinged long
其他類似的還有一些C++模板的關鍵字。
對於內存管理,也可以這樣設定,例如MFC中很明顯就有
#ifdef DEBUG
#define new DEBUG_NEW
#endif
總之,最終的目的就是使代碼儘量不受編譯平臺、編譯器的限制。如果非得要限制的話,也要把在更新平臺和編譯器後所需要的改動量降到最小。樓主只看到MFC這樣,是因爲沒有看過其他公司的東西,如果有機會到一個大的軟件企業工作就全明白了。
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/yjn001/archive/2009/01/12/3761709.aspx