1. 程式人生 > >沒有躲過的坑--重定義關鍵字

沒有躲過的坑--重定義關鍵字

從學習程式語言開始,我們就知道變數或是函式的命名不能使用系統的關鍵字。

但是有時候,你不得不這麼做。

比如mac、ios、Android、windows共用一個底層程式碼,這樣為了使底層更加通用,有時候就會忽略某種語言的某個關鍵字。

也許關鍵字A對於win32就是一個系統關鍵字,而A不是objective-c的關鍵字。

這個時候為了保證程式碼的通用性,就需要重定義關鍵字,也就是所說的遮蔽掉系統關鍵字。

比如對於win32平臺,需要遮蔽系統的某個關鍵字,你就可以這樣做:

#if PLATFORM == WIN32
#undef ERROR
#endif

enum Type {
   CHAT = 0
, ERROR, UNKNOWN, };

而上訴程式碼的第一行,使用的是預編譯頭。這樣就很好的遮蔽了系統的關鍵字ERROR,而ERROR成為了你定義的列舉型別。