簡體   English   中英

當我在.cpp文件中復制#include時會發生什么?

[英]What happens when I have duplicated #include in .cpp file

我在一家小公司工作,但是我們提供的服務可能會重復包含.CPP文件中的內容。 .h文件重復會影響我們的編譯時間嗎?

.h文件重復會導致重新定義錯誤。 可以使用:

#pragma once

或任何其他包括警衛

#include語句實際上被替換為包含的文件的全文,從而導致一個包含所有標頭和原始文件內容的大文件。 通常,將所有內容粘貼在一起所需的時間可以忽略不計。

但是,這意味着代碼兩次在您的文件中結束,除非您有

#pragma once

或使用

#ifndef MY_HEADER_NAME_H
#define MY_HEADER_NAME_H

// Actual header contents go here.

#endif /* MY_HEADER_NAME_H*/

或使用其他類似的構造,例如Objective C的#import指令,所有這些構造都可以確保,如果兩次包含標頭的內容,它們都不會再次被編譯。 否則,根據您的代碼,您將收到有關雙重定義的結構等的錯誤消息。

因此,除非您的項目或頭文件很大 ,或者編譯器的寫入異常好,或者硬盤的速度異常慢,否則在編譯時可以忽略兩次相同的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM