假设我有一个头文件,应该包含另一个头文件但不包含(无论出于何种原因)。例如:
myHeader.h
#ifndef MYHEADER_H
#define MYHEADER_H
struct i
{
uint32_t field; // Forgot to include <cstdint>
};
#endif
这个错误很容易隐藏在.c / .cpp文件中。例如:
someFile.cpp
#include "myOtherHeader.h" // <cstdint> gets included through this file
#include "myHeader.h"
struct i someStruct;
someFile.cpp会很好地编译并隐藏我在myHeader.h中错过包含cstdint
的事实。这不是一个问题,但假设我想在其他.cpp文件中使用myHeader.h,这可能会导致问题。
有没有一种简单的方法来检测头文件的遗漏?有一些不愉快的方法,比如手动查看文件(但这很乏味且容易出错),或者创建一个虚拟的.cpp文件,并且只包含有问题的头文件(但是它不能扩展到大量的头文件)。是否有一些静态分析工具或方法可以为我检查这个?
答案 0 :(得分:0)
你手动完成。
坐下来编写代码来检查你并将其粘贴到每个文件中,当你可以花费100个时间只是前往顶部并粘贴include语句时,有点愚蠢。