#pragma 指示符的用法

來源:互聯網
上載者:User

寫的比較好,所以轉過來。。。。以後忘記的話還可以複習一下,呵呵^_^!

#pragma   指示符  
   
          嗯,今天說點什麼呢?昨天的話題中說到了使用“#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  

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.