int main()
{
return -1;
}
以上面的简单代码为例,在main中,如果没有错误,则返回0;否则,返回0。如果有错误,则返回-1。但是为什么g ++执行后不显示任何错误或消息?而在Xcode中,它显示“程序以退出代码结束:255”,我可以告诉我一些错误。也许问题是:在g ++中,我该如何告诉main出现一些错误并返回非零值?
谢谢。
答案 0 :(得分:2)
(阐述评论中已经暗示的内容)
C ++是(通常)编译语言。 (尽管也存在解释器,但是带有clang或gcc的XCode不属于它们。)
source code(由OP公开)由machine code编译成CPU可执行文件。 (通常是编译器在其上运行的CPU,但是也可能是另一个编译器在运行{→{3}}。)机器代码是一个二进制代码(一般用户难以读取),它是唯一可以直接使用的代码。由CPU“解释”。
必须使用操作系统的特定功能(例如fork()
和exec()
)来启动产生的可执行文件。外壳程序(例如bash
)可以执行此操作,但也可以将其编程到其他程序中。
cross-compiling(例如XCode或VisualStudio)提供用于编译和启动的命令(按钮)。 “播放”按钮检查自上次编译以来是否已更改源代码。如果是这样,它将再次编译并将结果存储为可执行文件。 (否则,可能会跳过编译。)然后(假设没有任何编译错误)IDE fork()
是exec()
执行文件(即已编译程序)的进程。
一旦程序终止,它就会返回一个可以在父进程(启动程序)中接收的数字。如果父进程是bash
,然后将返回代码存储在一个变量中,此变量随后可以检索。
echo $?
打印最后终止的子进程的返回值。
IDE可能会在某种日志窗口中报告返回的值。在VisualStudio中,它是“输出”窗口。正如问题中所描述的,OP在XCode中似乎很相似。