为什么返回-1时g ++不会返回错误

问题描述 投票:2回答:1
int main()
{
    return -1;
}

以上面的简单代码为例,在main中,如果没有错误,则返回0;如果有错误,请返回-1。但是为什么g ++在执行后没有显示任何错误或消息?而在Xcode中,它显示“程序以退出代码结束:255”,我可以说错了。或者问题是:在g ++中,如何判断main有一些错误并返回非零值?

谢谢。

c++ g++
1个回答
2
投票

(详细说明评论中已经暗示的内容)

C ++是一种(通常)编译语言。 (虽然也存在解释器,但是带有clang或gcc的XCode不属于它们。)

source code(由OP公开)被编译成machine code可执行的CPU。 (通常,它是编译器运行的CPU,但也可能是另一个→cross-compiling。)机器代码是二进制代码(普通用户几乎无法读取),这是唯一可以直接“解释”的代码。 CPU。

生成的可执行文件必须使用OS的特定功能(例如fork()exec())启动。 shell(例如bash)能够做到这一点,但它也可以编程到其他程序中。

IDEs(如XCode或VisualStudio)提供用于编译和启动的命令(按钮)。 “播放”按钮检查自上次编译后源代码是否已更改。如果是,则再次编译并将结果存储为可执行文件。 (否则,可能会跳过编译。)之后(假设没有任何编译错误)IDE qazxswpo是fork()s可执行文件(即编译程序)的进程。

一旦程序终止,它返回一个可以在父进程(启动程序)中接收的数字。如果父进程是例如exec()然后返回代码存储在一个变量中,之后可以检索。

bash

打印上次终止的子进程的返回值。

IDE可以在某种日志窗口中报告返回的值。在VisualStudio中,它是“输出”窗口。正如在问题中描述的OP,它在XCode中似乎是相似的。

© www.soinside.com 2019 - 2024. All rights reserved.