C++头文件,foo.h与cfoo

C++ headers, foo.h vs cfoo

本文关键字:cfoo foo 文件 C++      更新时间:2023-10-16

如果人们真的想把函数放在全局命名空间中,那么使用这种风格有什么好处吗:

#include <cfoo>
using namespace std;

或者可以只做吗

#include <foo.h>

以获得相同的效果?

如果"foo.h"没有"正确准备"用C++编译,那么它在C++环境中根本无法正常工作。

"cfoo"样式的标题是为了使内容"适合"C++。旧样式的头文件起作用的主要原因是为了保持兼容性。

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

但至少如果你有using namespace std,你就有东西可以搜索。如果你想找到所有的".h"文件,你可能会找到你自己的.h文件,一些"ncurses.h"和类似的文件,而这些文件不是你想要的。

因此,总之,两者都不是好的解决方案,但

#include <cfoo>; 
using namespace std;

没有那么糟糕。