这是我注意到的,我没有答案,这让我感到困扰。
假设我们有两个简单的函数。
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语句,而其他函数则不会?
答案 0 :(得分:1)
打印输出也将显示在VS和Xcode中。不同之处在于你如何运行它。从Visual Studio执行程序时,控制台窗口会弹出,显示消息,并立即消失。
为了防止这种情况发生,您可以在return 0
行设置断点,并在调试模式下运行。点击断点后,切换到控制台窗口以查看消息: