pragma once和#ifndef的區別

來源:互聯網
上載者:User

pragma once表示的是這個標頭檔只聲明一次,可以防止被重複的引用導致的錯誤;而對於#ifndef語句則也是聲明一次,但是確實使用的事宏。我們不必為怎麼是用一個宏而大費周折了。如果聲明的宏的名稱一樣的話,可能會導致標頭檔明明存在,但是編譯器卻說找不到狀況。

而對於pragma once保證的是頭一個檔案不一定這兩個檔案的內容相同,保證不被包含多次。不必費勁想這個宏名,當然也就不會出現宏名一樣導致的錯誤。對應的缺點就是如果某個標頭檔有多份拷貝。可以保證他們不被重複包含。當然相比宏名相同引發的問題,重複包含更容易被發現修正問題。

建議使用第二種方式。比較的容易尋找到出現問題時候。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.