在conio.h头文件中定义的两个函数之间有什么区别-
getch()和_getch()。
去化有什么不同吗?或者仅仅是由于更新了标准而导致的差异?
发布于 2013-02-23 20:02:22
这是微软几年前决定更严格地解释C++标准的一部分。它指出,全局名称空间中以下划线开头的所有名称都保留供实现使用。这意味着getch不是保留名称,但_getch是保留名称。
因此,微软认为“这个函数和其他所有POSIX函数都是由实现提供的。让我们通过添加下划线来重命名它们,这样我们就能够将其保留在全局命名空间的”保留“部分中。这样,就不会出现与用户提供的函数名称冲突的情况。”
您可以说这些都是好的意图,或者说这只是破坏POSIX代码的恶意尝试。我不知道他们真正的动机是什么,但根据微软的说法,最终的结果是getch被弃用了,你应该使用_getch。
发布于 2013-02-23 20:01:40
这两个函数都是非标准的(即它们不在ISO标准中)。它们是由您的特定工具链提供的扩展,因此,您必须检查其文档中的差异。
https://stackoverflow.com/questions/15040286
复制相似问题