确定是否所有需要的头文件都包含在另一个头文件中
Determine if all needed header files are included in another header file
假设我有一个头文件,它应该包括另一个头文件,但没有(无论出于何种原因)。例如:
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文件,只包含有问题的头文件(但这不能扩展到大量的头文件)。有没有静态分析工具或方法可以帮我检查一下?
您可以手动操作。
坐着写代码来检查并粘贴到每个文件中是有点愚蠢的,因为你可以花100倍的时间去顶部粘贴include语句。
相关文章:
- 读取大文件(>2GB)(文本文件包含以太网数据)并通过不同参数随机访问数据的最佳方法是什么?
- C++文件包含多行
- CMake 如何强制third_party库将项目文件包含在当前项目源目录中?
- 是否可以将要"ShellExecute"的文件包含在 dll 中?如果是这样,"ShellExecute"中的文件位置应该是什么?
- C++ 逐行从文件(包含空格)读取数据
- 在 C++ 中,.h 文件包含文件但不起作用
- 生成的资源文件包含奇怪的包含文件
- 可变参数类的文件包含问题
- 为什么文件命令声明可执行文件包含"debug_info"
- 可以将标头文件包含在多个源文件中,而无需重复保护
- 为什么将.HPP文件包含在.h文件中
- Qt C++:将所有库文件包含在项目文件夹中
- 有条件地将文件包含在C++标头中
- 将多个原型文件包含在一个项目中会导致protobuf_AssignDescriptorsOnce()已经有一个主体
- 有没有办法将文件包含在C++中的所有项目文件中
- 将外部.asm文件包含到C++代码中
- 什么是"pch.h",为什么需要将其作为第一个头文件包含在内?
- 该头文件包含DirectX 12中的ThrowIfFailed()
- QT C :函数的多个定义当Header文件包含在MainWindow.h中时
- QT创建者错误地处理标头文件包含来自Directory