#pragma 指示符

“#pragma”指示符設定連接器參數來導出函數,其實“#pragma”的功能遠遠不止於此:    
          1.指示文件只包含一次  
          在頭文件中,一般在整個工程中我們只要包含一次就夠了,但是如果我在多個   .c/.cpp   文件中都要包含着個頭文件,比如   Windows.h,那很多聲明等等豈不是有兩次了?解決這個問題的傳統的方法是在頭文件開始出用   #define   定義一個宏,比如   Windows.h   中:  
           
  #ifndef   _WINDOWS_  
  #define   _WINDOWS_  
   
          然後在文件結爲加上   #endif,這樣就可以避免被包含多次。但是這樣的後果是代碼的可讀性較差   (個人觀點),VC   給我們提供了另外一個途徑,那就是在文件的前面加上:  
   
  #pragma   once”  
   
          是不是很方便?  
   
          2.使警告無效  
          有時候我們不得不對變量進行強制轉換,由此引來編譯器的一番警告,特別是   C++   中,類型檢查相對於   C   更爲嚴格。這雖然不影響什麼,但是看起來多不爽——我是故意要這樣的,你警告什麼!:)這時候你看到警告類型,比如“warning   C4311:   “類型轉換”   :   從“HHOOK”到“BOOL”的指針截斷”,在前面加上:  
   
  #pragma   warning(disable:   4311)  
   
          編譯器就沒話說了:)。  
   
          3.指定連接要使用的庫  
          比如我們連接的時候用到了   WSock32.lib,你當然可以不辭辛苦地把它加入到你的工程中。但是我覺得更方便的方法是使用   #pragma   指示符,指定要連接的庫:  
   
  #pragma   comment(lib,   "WSock32.lib")  
   
          4.顯示編譯消息  
          沒多少用處,舉個例子吧:  
   
  #ifdef   _DEBUG  
  #pragma   message("編譯連接爲調試模式...")  
  #endif   //   _DEBUG
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章