```System.Boolean```
System.LongBool

原始链接: https://docwiki.embarcadero.com/Libraries/Sydney/en/System.LongBool

启用 JavaScript 和 Cookie 以继续。

## Delphi 的 `LongBool` 类型解释 最近 Hacker News 上有一个讨论围绕 Delphi 的 `LongBool` 类型,以及它与其它语言和操作系统兼容性的目的。与许多 `bool` 为 8 位的语言不同,Delphi 提供 `ByteBool`、`WordBool` 和 `LongBool`,以与使用不同大小的布尔值的系统(如较旧的 Windows 版本或 C 库)对齐——可能为字节、字或长字。 对话强调了在与其他语言接口(FFI)时,可预测的 `True` 和 `False` 值的重要性。虽然 `False` 通常映射为 0,但确保 `True` 的一致非零值对于可靠的数据交换至关重要。 参与者还讨论了 C 语言中布尔表示的历史背景(C99 之前使用 `int`),以及在具有不同布尔解释的各种 FFI 接口之间桥接时可能出现的意外行为。讨论甚至延伸到 Pascal 和 C++ 等语言中的零大小类型,以及为这些类型分配内存的挑战。最终,`LongBool` 的存在是为了平滑互操作性,承认“布尔值”并非普遍定义。
相关文章

原文
联系我们 contact @ memedata.com