已从c++中的头文件中删除包含问题



如果我有一个头文件,其中包含<iostream>,那么我的main.cpp也包含<iostream>,这种重复会带来问题吗?如果是,我该如何避免这种情况?

不,这里没有问题

[using.headers/2]:翻译单元可以按任何顺序([lex.special](包括库头。每个头可以被多次包括,与被完全包括一次没有什么不同,只是包括<cassert><assert.h>的效果每次都取决于NDEBUG的词汇当前定义174翻译单元可以包括任何顺序的库头([lex.special](。每个可以被包括一次以上,与被完全包括一次没有任何不同的效果,只是包括<cassert><assert.h>的效果每次都取决于NDEBUG的词汇当前定义174

通常使用标头保护或#pragma once来实现。

我忽略了关于NDEBUG的警告,因为您不应该使用#define#undef来设置或取消设置,而是在整个构建中集体设置(或不设置(

最新更新