当我在.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指令,所有这些都可以确保头文件的内容不会被编译第二次,如果你包含它们两次。否则,根据您的代码,您将获得关于双重定义结构等的错误消息。
所以除非你的项目或你的头文件很大,或者你的编译器写得特别糟糕,或者你的硬盘特别慢,当涉及到编译时间时,包括同一个文件两次是可以忽略不计的。
相关文章:
- 什么是"#include <boost/functional/hash.hpp> "?
- #include < conio.h> 和 getch() 方法之间的关系是什么?
- #include "MyClass.h" 和 #include ".myclass.h" 有什么区别
- 是 std::include 中的错误还是我做错了什么
- 将标题放在项目的"include"子目录中有什么好处吗?
- 有什么方法可以在C #include语句中使用通配符
- 我什么时候使用 #include<string>?
- 一个只包含一个#include的.cpp文件有什么意义
- 来自 C 的指令 #include 和来自 C++ 的指令之间有什么区别吗?
- #include <file> #include < file.h> - 有什么区别?
- #include 和复制粘贴有什么区别?
- swig接口文件的正确sstream include路径是什么
- 如何判断哪个#include提供了什么对象
- #include<> 和 #define " " 有什么区别
- 如果#include无法找到文件会发生什么
- 在include语句中斜杠是什么意思?
- 在源文件中指定include前缀与在编译器的搜索路径参数中指定include前缀的优缺点是什么
- c++中using和include的区别是什么?
- 什么时候不使用头文件中的include保护
- 当我在.cpp文件中复制#include时会发生什么?