c++中的#pragma once與#inndef

一、作用

兩者都是為了避免同一個頭文件被包含多次。

二、常規(guī)使用

1、#pragma once

#pragma once
......  ......  //聲明、定義語句

2、#ifndef

#ifndef  __SOMEFILE_H__
#define __SOMEFILE_H__
......  ......  //聲明、定義語句
#endif

三、各自的優(yōu)缺點

1、pragma once的優(yōu)缺點

1)優(yōu)點:

一般由編譯器提供保證,同一文件(指物理上的一個文件,而不是內(nèi)容相同的兩個文件)不會被包含多次;同時也不會有宏沖突,也可提供編譯速度。

2)缺點:

某個文件多份拷貝,不能保證不被重復(fù)包含,并且不受老編譯器支持,不支持跨平臺,移植性差。

1、#ifndef的優(yōu)缺點

1)優(yōu)點:

受C/C++語言標(biāo)準支持,不受編譯器限制,移植性好。不僅保證同一文件不會被包含多次,也能保證內(nèi)容相同的兩個文件(或代碼片段)不會包含多次。

2)缺點:

不同頭文件中的宏名一樣的話,可能導(dǎo)致你看到頭文件明明存在,但編譯器報找不到聲明的錯誤。由于編譯器每次都需要打開頭文件才能判定是否重復(fù)定義,因此編譯時間會較長。

參考文獻:
https://www.cnblogs.com/qiang-upc/p/11407364.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容