我正在使用来自 Visual C++ 2008 的 gcc 编译代码。代码使用的是 errno_t,但在某些版本的 gcc header 中包括 <errno.h>
没有定义类型。如何检测类型是否已定义?是否有一个定义表明类型已定义?如果它未定义,我想提供 typedef 让代码在所有平台上正确编译。
最佳答案
Microsoft 的 errno_t
是多余的。 errno
由 ISO C 标准定义为 int
类型的可修改左值。如果您的代码需要存储 errno
值,那么您应该将它们放入 int
中。
进行全局搜索并替换 s/errno_t/int/
就完成了。
编辑:此外,您不应在代码中提供 typedef int errno_t
,因为所有以 _t
结尾的名称都是保留。
关于c++ - 如何检测是否定义了 errno_t?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1464711/