为什么微软使 C++ 头文件无法读取

why does microsoft make the C++ header files impossible to read

提问人:bruh_wym 提问时间:9/24/2022 更新时间:9/24/2022 访问量:38

问:

一般问题,因为每次我去从标准文件中读取任何头文件时,我都会遇到最不可读的无意义/逻辑名称,从它们的糟糕程度来看,这些名称几乎是故意看起来很糟糕的。Microsoft 喜欢并以某种方式使指针变长有什么特别的原因吗?PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_ALWAYS_OFFLPfar__TCNIS* __WDICO_Io_ = __SomethingWithABadName

Windows Visual-C++ 标准

评论


答:

1赞 Anders 9/24/2022 #1

长名称是命名空间的 C 版本,Windows 标头必须与 C 兼容。你在那里选了一个异常长的名字作为你的例子,它通常没有那么糟糕。

LP 和 FAR 是因为 16 位历史记录。

在 16 位体系结构(16 位 Windows)上,有 2 种类型的指针,P 代表“指针”,LP 代表“长指针”。需要长指针(也称为远指针)来寻址当前段之外的内存范围。保留了 LP 前缀,以便更轻松地将 16 位代码移植到 32 位 Windows。今天没有区别,这些指针类型都是等效的。避免使用这些前缀;或者,如果必须使用一个,则使用 P。

您可以在 windows.h 定义的宏 NEAR 和 FAR 中看到 16 位内存模型的残余。它们不再有任何意义,但它们仍然用于源代码的向后兼容性。

Win32 与 Win16 99% 源代码兼容,虽然它帮助了当时的开发人员,但我们现在永远被困在这些东西上。

以 开头的名称是保留的,理想情况下您不应与它们交互......__