这个问题与 strdup or _strdup? 相关,但并不相同。那个问题问如何“解决”MS的重命名问题,而这个问题则问为什么它们首先这样做。
由于某种原因,Microsoft 已经弃用了一整套 POSIX C 函数,并用以 '_' 为前缀的新函数替换它们。其中之一的例子是 'isatty':
https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/posix-isatty
This POSIX function is deprecated. Use the ISO C++ conformant _isatty instead.
_isatty
在ISO C++中符合什么要求?在我看来,MSDN文档帮助完全是错误的。
另一个回答解释了如何解决这个问题。你可以添加_CRT_NONSTDC_NO_DEPRECATE
定义。不错。但我想知道微软的想法是什么。他们重命名和弃用函数的目的是什么?是为了让C程序员的生活更加困难吗?