Sha*_*han 5 c++ iostream include
我希望这个网站以前没有被问过。我无法从谷歌找到可靠的答案。
在项目的多个文件中#include iostream 时会发生什么?我总是在我的头文件中使用 #ifndef 和 #define。这是否会阻止 iostream 被多次包含?
我对这个问题有两种解释:
iostream在同一个编译单元中多次包含吗?
iostream被多次包含吗?
#ifndefand之间的所有内容#endif(或在标有 的标头中#pragma once,在支持它的编译器中)... 但这对于 来说并不是真正需要的#include <iostream>,因为它已经防止了多个包含。正如克里斯和哈罗根所说,是的,他们会阻止这种情况发生。#ifndef 和 #define 是预处理器指令,翻译成英文
#ifndef(如果未定义)
#定义(定义)
因此,如果您创建一个标头,并 #include "myheader.h" 两次,那么该文件将不会再次被包含,因为您将其包含在 if 语句中,这将导致该文件仅在它具有时才被包含(和定义)尚未包含(定义)。