gpt4 book ai didi

c++ - C++ 标准文档说程序不应调用 main 函数,但我做到了

转载 作者:行者123 更新时间:2023-12-02 01:53:45 25 4
gpt4 key购买 nike

C++ 标准文档中明确指出程序不能调用 main。但我编写了一个调用 main 的程序并且运行得很好,这是为什么呢?代码:


#include<iostream>

static int counter = 0;

int main(){
counter++;
std::cout << counter << " It works" << std::endl;

while(counter < 10){
main();
}

return 1;
}

它向控制台打印“It Works” 10 次。根据标准文档,这不应该起作用,但它确实有效。这是怎么回事?

最佳答案

basic.start.main/3 :函数main不得在程序中使用。

违反此规则会使您的程序出现undefined behavior - 这意味着该程序几乎可以做任何事情。它甚至可能会执行您希望它执行的操作,或者看似执行您想要执行的操作,但会产生毁灭性的副作用,因此请避免在程序中出现未定义的行为

关于缺少诊断消息:我怀疑某些编译器(例如 g++)实际上支持调用 main 作为扩展。我必须打开 -pedantic-pedantic-errors 才能获取诊断消息“ISO C++ 禁止获取函数 '::main' 的地址 [-Wpedantic ]

关于c++ - C++ 标准文档说程序不应调用 main 函数,但我做到了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69865908/

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