在主函数中使用"Void",并防止Dos程序崩溃。

13 浏览
0 Comments

在主函数中使用"Void",并防止Dos程序崩溃。

可能是重复的问题:
\nvoid main和int main有什么区别? \n好的,我正在使用bloodshed编译器,首先我应该注意的是我正在使用2001年版本的C++入门教程,C++自2001年以来有没有发生任何变化会影响这本书的有效性?我问这个问题是因为我知道php有php5和现在的php6,但我没有看到任何C++03。\n现在我问这个问题的原因是,这段代码使用了\n

void main (void)

\n为什么我要传入一个void参数?这是做什么的。\n但是当我在编译器中运行void main (void)时,它说main之前必须有一个\"int\"。所以我不能有\"void\" main (void);\n此外,一旦代码运行完毕,只要没有\"cin\",程序就会关闭。\n这是正常行为吗?除了在程序末尾加上一个cin之外,有没有更好的停止程序的方法?

0
0 Comments

自2001年以来,C++编译器发生了变化,整体上对于C++的标准遵循要求更加严格。例如,gcc从2.95版本一直升级到4.4.2版本。早期的编译器可能会接受这种main函数的形式,因为它们可能会接受一些旧的C语言的特性,而这些特性在C++中是不合适的,但是这种情况下并没有改变语言本身(至少就标准而言是如此)。

虽然如此,C++确实发生了变化,并且正在变化中,尽管还没有达到官方标准的水平。不同的编译器对这些变化的支持程度不同。我不认为你会受到这些变化的影响,但是你可能还是想要了解一下它们。参考以下链接:

- C++ TR1

- C++0x,即将发布的标准

关于如何结束你的程序。我建议在main函数中的某个点上简单地使用"return 0;"来退出程序,或者使用非零的退出代码来表示错误退出。虽然你可以省略return语句,很多示例确实这样做,但我个人认为这样做是不好的风格。

我理解你使用cin来暂停程序在退出前等待你的响应。这在一般情况下并不是C++应用程序所必需的,它只是你目前运行程序的一种方便方式。对于示例来说是可以的,但是对于真正的应用程序来说,你肯定要避免这样做。

关于你的程序为什么会关闭以及如何避免它的问题,你有没有看到我答案的第二部分?使用2001年的书没有问题,但是为了你自己的利益,请使用一本至少与当时标准相符的不同的2001年的书。

在main函数中省略return语句是合法的;它会隐式地在末尾返回0。但是你确实需要声明一个int类型的返回值,如果书上说的不一样,那就是错误的。

如果这本书对你来说可读性好并且适合你的水平,我会和我的同事们的普遍意见不同,建议你继续使用它 - 这本书在写这种方式时是错误的,但我认为这只是一个相对较小的陷阱。像任何一本书一样,要批判地阅读,如果有什么不明白或者不起作用,就提问。记住,还有很多其他的C++书籍可以选择。

是的,免费的东西很难打败,但我在eBay上看到一些便宜的Lippman第三版。很多当地的书店也会以低价处理旧的技术书籍。

0
0 Comments

在上述内容中,出现了一个关于“Void in main and keeping Dos program from dying”的问题。问题的原因是使用了不符合C++标准的void main,以及使用C语言中不推荐的(void)来声明无参函数。该问题的解决方法是,避免直接启动控制台程序,而是自己打开一个控制台窗口,在其中运行程序。这样,控制台窗口将会一直保持打开状态。不推荐使用给程序添加额外的虚拟输入或者“pause”调用的常见做法来保持窗口打开。文章中还提到,即使C++自2001年以来发生了一些变化,但根据示例代码所示,该书的信息在1998年的C++标准中也是不准确的,因此该书不适合学习。

0