gpt4 book ai didi

c++ - 程序不能用较新版本的 g++ 编译

转载 作者:太空宇宙 更新时间:2023-11-04 14:35:27 25 4
gpt4 key购买 nike

我有以下源代码。在 visual studio 和 g++ 3.4.6 中编译良好;但不适用于 g++ 4.4.3(在较新的 ubuntu 机器上)。较新的编译器要求我明确包含使用 atoi。我只是想弄清楚是什么改变导致了这种行为。是不是以前包含cstdlib的sstream头文件,现在不再包含了。或者是编译器行为发生了变化。

#include <sstream>

int main()
{
char str1[]="123";
int i = atoi(str1);

printf ("value = %d",i);
return 0;
}

最佳答案

您还需要包括 <cstdio>对于 printf() .

从技术上讲,如果您包含 <cname> 形式的标题而不是 <name.h> ,您还需要使用 std:: 限定标准库中的名称.但是,很多标准库实现在涉及到这一点时都放宽了,并且还将名称放入全局命名空间中。

哪些 header 包含哪些其他 header 取决于实现,因此您应始终确保包含所需的所有 header ,而不是假设它们会自动包含。

关于c++ - 程序不能用较新版本的 g++ 编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4100879/

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