几年前,微软决定更加严格地解释C++标准。其中规定在全局命名空间中以下划线开头的所有名称都“保留供实现使用”。这意味着“getch”不是保留名称,但是“_getch”是。因此,微软认为,“该函数和每个其他POSIX函数都是由实现提供的。让我们通过添加下划线来重命名它们,以便我们能够将其保留在全局命名空间的‘保留’部分内。这样,就不会与用户提供的函数发生名称冲突。”您可以说这些是良好的意图,也可以说这只是破坏POSIX代码的邪恶尝试。我不知道他们真正的动机是什么,但最终结果是根据微软的说法,“getch”已被弃用,应改用“_getch”。
getch()
жҳҜcurses
зҡ„дёҖйғЁеҲҶпјҢеӣ жӯӨд»»дҪ•дҫқиө–дәҺgetch()
зҡ„POSIXд»Јз ҒйғҪйңҖиҰҒ移жӨҚcurses
гҖӮ - n. m.getch
是否是 POSIX 规范的一部分,还是来自其他库。我知道他们对所有 POSIX 函数都进行了这种处理,而且快速谷歌getch
提到了 POSIX,所以我认为它是一个 POSIX 函数。如果不是,那也没有什么改变,因为他们的重命名不仅限于 只有 POSIX 名称。 - jalf