【发布时间】:2015-07-06 00:27:59
【问题描述】:
在 C++ 中使用标准 C 函数时,是否应该在每个函数前加上 std::?
例如(文件名:std.C):
#include <cstdio>
int main() {
std::printf("hello\n");
printf("hello\n");
}
这个文件可以编译:
g++ -Wall -Werror -std=c++11 std.C
没有任何错误。
我的问题是:
- 在 C++ 中使用所有标准 C 库函数时,我们是否应该始终将
std::放在它们之前? -
<stdio.h>和<cstdio>等头文件的主要区别是什么?
【问题讨论】:
-
1 是 2 一个已弃用,另一个未弃用。
-
@KerrekSB 而且,一个是C,另一个是C++。 C++ 不是 C 的超集。
-
(1) 是的,但这取决于。 (2)
<cstdio>将函数包装在std命名空间中。第一个是为了向后兼容而存在的。 -
@KerrekSB:3. 停止在 cmets 中回答。