提问人:bruh_wym 提问时间:9/24/2022 更新时间:9/24/2022 访问量:38
为什么微软使 C++ 头文件无法读取
why does microsoft make the C++ header files impossible to read
问:
一般问题,因为每次我去从标准文件中读取任何头文件时,我都会遇到最不可读的无意义/逻辑名称,从它们的糟糕程度来看,这些名称几乎是故意看起来很糟糕的。Microsoft 喜欢并以某种方式使指针变长有什么特别的原因吗?PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_ALWAYS_OFF
LP
far
__TCNIS* __WDICO_Io_ = __SomethingWithABadName
答:
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% 源代码兼容,虽然它帮助了当时的开发人员,但我们现在永远被困在这些东西上。
以 开头的名称是保留的,理想情况下您不应与它们交互......__
评论