This question already has answers here:
cstdio stdio.h namespace

(2个答案)


7年前关闭。




如果确实希望将函数放置到全局 namespace 中,那么使用这种样式有什么好处:
#include <cfoo>
using namespace std;

还是可以做
#include <foo.h>

具有相同的效果?

最佳答案

如果“foo.h”未准备好使用C++进行编译,则在C++环境中将无法正常工作。

那里的“cfoo”样式标题使内容“适合” C++。旧样式的 header 起作用的事实主要是为了保持兼容性。

从某种意义上来说,这两种解决方案同样很糟糕,因为当您以后发现您刚遇到名称冲突时,因此需要更新对foo的所有调用以使用bleh::foostd::foo来确保您知道哪个是含义。 。

但是,至少如果您有using namespace std,那么您就有一些要搜索的东西。如果要查找所有“.h”文件,则可能会找到自己的.h文件,一些“ncurses.h”及类似文件,而这些并不是您要查找的文件。

因此,总而言之,都不是好的解决方案,但是

#include <cfoo>;
using namespace std;

有点坏。

关于c++ - C++ header ,foo.h和cfoo ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18391910/

10-11 16:27