MSVS 2015将errno放在stddef.h中?

时间:2016-02-15 15:39:59

标签: c visual-c++

我有一个在多个平台上编译的项目,其中一个是Visual C ++。我注意到我们经常打破构建,因为开发人员使用errno而不包括errno.h,但因为它们在Visual Studio中工作,并且它们的源包括stddef.h,无论是直接还是间接,它都没有编译为它们。

为什么在此标题中定义了errno?什么是在我们的周期早期发现这个问题的好方法,i。即仍然在Visual Studio中?

1 个答案:

答案 0 :(得分:2)

  

在我们的周期早期发现这个问题的好方法是什么?即仍然在Visual Studio中?

除非你在两个不同的平台上同时开发,否则这样的问题很难(如果不是不可能的话)。

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

对代码进行严格的开发人员和/或同行评审可能是解决问题的最佳选择。