gpt4 book ai didi

C++11 exit() 和 abs() 不包含

转载 作者:行者123 更新时间:2023-11-30 01:40:09 26 4
gpt4 key购买 nike

请告诉我为什么这段代码是用 C++11 标准编译的:

#include <iostream>
using namespace std;
int main()
{
abs(-12);
exit(1);
return 0;
}

没有错误g++ -std=++11 main.cpp
此错误 g++ main.cpp

如果删除 #include <iostream>然后在 exit() 上得到错误和 abs()编译程序时。
告诉我为什么会这样,如果我不包括 <cstdlib> ?以及如何做到这一点将使用 -std=c++11 进行编译是警告还是错误?

最佳答案

答案非常简单:代码可以编译,因为在 C++11 下,您的 iostream 库包含其他具有 exit()abs() 的库 定义。您不会为此收到警告或错误。你为什么会?在支持所有级联包含之后。

但是你不应该依赖它,因为它不是标准的一部分,并且可能会在不同的编译器下崩溃。但我想只要您坚持使用一个编译器和一个 -std 标志就可以了。通过添加一些包含来解决这个问题也不应该是一个大问题。

关于C++11 exit() 和 abs() 不包含 <cstdlib>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43863983/

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