当我在.cpp文件中重复#include时会发生什么

时间:2014-03-30 03:19:55

标签: c++ build c-preprocessor

我在一家小公司工作,但我们可能有重复的服务,包括.CPP文件。重复的.h文件会影响我们的编译时间吗?

2 个答案:

答案 0 :(得分:3)

重复.h文件可能导致重新定义错误。使用:

#pragma once

或任何其他include guards

答案 1 :(得分:0)

#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&#39的#import指令,所有这些都确保如果你包含它们两次,标题的内容不会被第二次编译。否则,根据您的代码,您将收到有关双重定义的结构等的错误消息。

因此,除非您的项目或头文件是 large ,否则您的编译器编写异常严重,或者您的硬盘异常缓慢,包括相同文件两次在编译时可忽略不计