int main()
{
return -1;
}
以上面的简单代码为例,在main中,如果没有错误,则返回0;如果有错误,请返回-1。但是为什么g ++在执行后没有显示任何错误或消息?而在Xcode中,它显示“程序以退出代码结束:255”,我可以说错了。或者问题是:在g ++中,如何判断main有一些错误并返回非零值?
谢谢。
(详细说明评论中已经暗示的内容)
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中似乎是相似的。