1. 程式人生 > >怎樣防止標頭檔案被重複引用

怎樣防止標頭檔案被重複引用

方式一:條件編譯:

#ifndef 
#define

......//一些宣告語句 

#endif

這種方式依賴於巨集名稱不能衝突,而且這種方式可以保證同一個檔案不被包含多次,也能保證內容完全相同的兩個檔案不會不小心同時包含。但是,如果巨集名稱相同,就會明明你包含了標頭檔案,卻找不到原始檔。條件編譯的有點事,跨平臺效果好。
例:

//file1h
#define __BOOK_H_

現在有另外一個file2.book.h

#ifnedf _BOOK_H__
#define _BOOK_H__

//program

#endif // _BOOK_H__

在你的主函式裡包含了該檔案:

#include "file1.h”
#include"book.h"

預編譯階段,把file1裡的巨集展開,就得到了一個BOOK_H_的巨集,這個時候就不會在包含book.h這個標頭檔案了

方式二:#pragma once
這種方式又叫c和c++雜注,優點是,簡單,沒有巨集定義衝突的情況,但是不跨平臺,而且如果兩個內容完全相同的檔案被包含,不會報錯。