如何转换main()函数的返回值?

bjs*_*123 1 c c++

我正在使用Visual Studio 2008.对于下面的代码

double main()
{
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

错误C3874:'main'的返回类型应为'int'而不是'double'

但如果我使用下面的代码

char main()
{
}
Run Code Online (Sandbox Code Playgroud)

没有错误.运行并退出输出窗口后显示

程序'[5856] test2.exe:Native'已退出,代码为-858993664(0xcccccc00).

问题:编译器是否从默认返回值零(整数)到char进行隐式转换?

如何生成代码0xcccccc00?

看起来该代码中的最后一个字节似乎是实际的返回值.为什么0xcccccc即将到来?

Mic*_*eyn 5

根据C++标准,正确的方法是:

int main()
{
...
}
Run Code Online (Sandbox Code Playgroud)

不要将返回类型更改为其他任何内容,否则您的代码将不是C++,而您只是在使用编译器特定的功能.您的示例中的那些ccccc值只是返回的单位化字节(C分配器设置为0xCC).