2014-01-06

Multiple Inclusions : Include Guard VS #pragma once

宣告(declarations) 可以很多次 但是定義(Definitions)只能有一次

宣告是要讓程式知道變數的型別和名稱

定義則是要配置出一個記憶體空間

為了避免Multiple Inclusions 目前有兩種作法


(1) Include Guard

#ifndef TEST_HEADERGUARD
#define TEST_HEADERGUARD
...
#endif

優點: 所有compiler都適用
缺點: compiler時間較長
           define名稱可能會撞名
(2) pragma once

#pragma once
...
優點: compiler時間短
缺點: 舊compiler不適用
參考wiki

           

0 意見: