相关疑难解决方法(0)

为什么C++中的main()无法内联?

我正在阅读C++常见问题,我注意到了一句话.

main()不能内联.

为什么是这样?

c++ program-entry-point inline

68
推荐指数
9
解决办法
5392
查看次数

主函数可以在C++中调用自身吗?

任何人都可以告诉下面的代码有什么问题吗?

int main () { 
    return main(); 
}
Run Code Online (Sandbox Code Playgroud)

我测试过,它编译正确.它一直在运行.现场背后的诀窍呢?

c++

15
推荐指数
6
解决办法
1万
查看次数

为什么gcc会警告decltype(main())而不是clang?

请使用以下代码:

int main()
{
    decltype(main()) x = 0;
    return x;
}
Run Code Online (Sandbox Code Playgroud)

gcc抱怨:

main.cpp: In function 'int main()':
main.cpp:8:19: warning: ISO C++ forbids taking address of function '::main' [-Wpedantic]
     decltype(main()) x = 0;
                   ^
main.cpp:8:19: warning: ISO C++ forbids taking address of function '::main' [-Wpedantic]
Run Code Online (Sandbox Code Playgroud)

但没有铿锵 那么怎么decltype(main())会引发这个错误呢?怎么decltype拿主要的地址?

c++ gcc clang c++11

11
推荐指数
2
解决办法
485
查看次数

为什么在C++中不允许递归的main()调用?

可能重复:
对main()函数的限制
在C++中递归到main()是否合法?

我在C++ Primer中读到了main不允许递归调用的问题,并且在SO的一些相关问题中确实证实它是非法的.

但为什么这是非法的?只要你避免堆栈溢出,调用main内部的问题是什么?

c++ program-entry-point

8
推荐指数
1
解决办法
4219
查看次数

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

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;
}
Run Code Online (Sandbox Code Playgroud)

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

c++ recursion program-entry-point

2
推荐指数
1
解决办法
143
查看次数

标签 统计

c++ ×5

program-entry-point ×3

c++11 ×1

clang ×1

gcc ×1

inline ×1

recursion ×1