gpt4 book ai didi

c++ - 在 C++ 中使用标准 C 函数时,是否需要 "std::"前缀?

转载 作者:IT老高 更新时间:2023-10-28 22:38:38 26 4
gpt4 key购买 nike

在 C++ 中使用标准 C 函数时,是否应该在每个函数前加上 std:: ?

例如(文件名:std.C):

#include <cstdio>

int main() {
std::printf("hello\n");
printf("hello\n");
}

这个文件可以编译:

g++ -Wall -Werror -std=c++11 std.C

没有任何错误。

我的问题是:

  1. 我们是否应该一直放置 std::在 C++ 中使用的所有标准 C 库函数之前?
  2. <stdio.h> 等头文件的主要区别是什么?和 <cstdio> ?

最佳答案

The C++ library includes the same definitions as the C language library organized in the same structure of header files, with the following differences:

  • Each header file has the same name as the C language version but with a "c" prefix and no extension. For example, the C++ equivalent for the C language header file <stdlib.h> is <cstdlib>.
  • Every element of the library is defined within the std namespace.

Nevertheless, for compatibility with C, the traditional header names name.h (like stdlib.h) are also provided with the same definitions within the global namespace although its use is deprecated in C++.

( source )

std:: std::printf() 的一部分call 是标准库中使用名称的标准方式,因此,我建议使用它。

关于c++ - 在 C++ 中使用标准 C 函数时,是否需要 "std::"前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29897661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com