c - MSVS 2015 将 errno 放入 stddef.h?

标签 c visual-c++

我有一个在多个平台上编译的项目,其中之一是 Visual C++。我注意到我们经常破坏构建,因为开发人员使用了 errno 而没有包含 errno.h,但是因为他们在 Visual Studio 中工作,并且他们的源代码直接或间接地包含 stddef.h,所以它没有编译失败他们。

为什么要在这个头文件中定义 errno?在我们的周期中尽早发现这个问题的好方法是什么,我。 e.仍在 Visual Studio 中?

最佳答案

What is a good way to catch this problem early in our cycle, i. e. still inside Visual Studio?

除非您同时在两个不同的平台上进行开发,否则即使不是不可能,也很难发现此类问题。

您可以在 VS 项目的所有文件中搜索字符串“errno”,然后检查搜索是否也找到“errno.h”,但这仅对这个特定问题有用。标准库有许多其他函数/宏,您可能会间接看到这些函数/宏。使用相同的策略来确保所有函数/宏的正确头文件都是 #included 是不切实际的。

纪律严明的开发人员和/或代码同行评审可能是您解决问题的最佳选择。

关于c - MSVS 2015 将 errno 放入 stddef.h?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35413348/

相关文章:

C:多个 scanf,当我输入一个 scanf 的值时,它会跳过第二个 scanf

winapi - 隐藏 MFC 对话窗口

c - GTK : wait for user input

c - 如何理解用它定义 x 和位运算?

c - 在 C 中以原子方式比较两个整数的最快方法?

php - linux下C和PHP进程间通信有什么好的方法

c++ - 可以使用ofstream在打印机上打印

c - 函数声明与原型(prototype)的替代 (K&R) C 语法

c++ - Visual Studio 中的 OpenMP 任务

c++ - 获得适用于 C++ 的正确编译器