繁体   English   中英

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

[英]why does g++ doesn't return error when return -1

int main()
{
    return -1;
}

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

谢谢。

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

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

源代码(由 OP 公开)被编译成CPU可执行的机器代码 (通常,它是编译器运行的 CPU,但也可能用于另一个 CPU →交叉编译。)机器代码是二进制代码(普通用户几乎不可读),它是唯一可以直接“解释”的代码“由CPU。

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

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

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

echo $?

打印最后终止的子进程的返回值。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM