Void函数,cout语句和编译器

时间:2014-10-14 16:48:52

标签: c++ xcode gcc

这是我注意到的,我没有答案,这让我感到困扰。

假设我们有两个简单的函数。

void foo()
{
    std::cout << "Rainbows are cute!" << std::endl;
    return;


}

int main()
{
    foo();
    return 0;

}

现在这两个函数都是同一个cpp文件的一部分。

如果我在gcc上编译这个cpp文件,该文件将会说“彩虹很可爱!” 但如果我在Xcode或Visual Studio上执行此操作,则不会显示cout语句。我提到了VS和Xcode,因为这是两个常见的编译器,很多人都使用过。

我的问题是为什么会发生这种情况?编译器中发生了什么,一个会在void函数中显示cout语句,而其他函数则不会?

1 个答案:

答案 0 :(得分:1)

打印输出也将显示在VS和Xcode中。不同之处在于你如何运行它。从Visual Studio执行程序时,控制台窗口会弹出,显示消息,并立即消失。

为了防止这种情况发生,您可以在return 0行设置断点,并在调试模式下运行。点击断点后,切换到控制台窗口以查看消息:

RainbowsAreCute