_p.h文件的目的是什么?

met*_*dos 6 c++ qt coding-style header header-files

在Qt源文件中,有两个版本的头文件,例如:

qxmlstream.h
qxmlstream_p.h
Run Code Online (Sandbox Code Playgroud)

为什么有_p.h文件?

pax*_*blo 9

它们通常是私有头文件,用于使子系统的组件知道除用户不需要的所有内容.

换句话说,如果Qt的用户不需要了解它们,Qt中的多个C源文件可能想知道的内容将在私有头文件中.

一个示例可能是您的子系统的自定义内存分配器.也许您知道您所做的每个内存分配都是128个字节,那么您可以提供这样的分配器:

void * malloc128 (void) { ... }
Run Code Online (Sandbox Code Playgroud)

由于这对您的子系统用户来说可能具有可疑价值,因此将其作为官方API的一部分发布是没有意义的,但是您自己的源文件中的一个都需要原型,因此您将其放在私有头文件中.

然后你自己的代码使用:

#include "mysubsystem_p.h"
Run Code Online (Sandbox Code Playgroud)

您的API用户使用:

#include "mysubsystem.h"
Run Code Online (Sandbox Code Playgroud)