![](/img/trans.png)
[英]what happens if I have the same cpp file compiled within a library and the application?
[英]What happens when I have duplicated #include in .cpp file
我在一家小公司工作,但是我們提供的服務可能會重復包含.CPP文件中的內容。 .h文件重復會影響我們的編譯時間嗎?
#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.