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。
生成的可执行文件必须使用操作系统的特定功能(例如 fork()
和 exec()
)来启动。 shell(例如bash
)能够做到这一点,但它也可以被编程到其他程序中。
IDE s(如 XCode 或 VisualStudio)提供用于编译和启动的命令(按钮)。 “播放”按钮检查自上次编译以来源代码是否已更改。如果是,则再次编译并将结果存储为可执行文件。 (否则,编译可能会被跳过。)然后(假设没有任何编译错误)IDE fork()
是一个 exec()
可执行文件的进程(即编译后的程序)。
一旦程序终止,它就会返回一个可以在父进程(启动该程序)中接收的数字。如果父进程是例如bash
然后返回代码存储在一个变量中,以后可以检索该变量。
echo $?
打印最后终止子进程的返回值。
IDE 可能会在某种日志窗口中报告返回值。在 VisualStudio 中,它是输出窗口。正如问题中OP所描述的,XCode中似乎类似。
关于c++ - 为什么g++返回-1时不返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55556526/