我目前正在移植一个在某些情况下使用longbool的小应用程序,并且如果我找到一个就会使用bool64类型。将类型更改为in64然后设置/检查0以查找是否为true / false并不是一个大问题但是如果有某种方法可以启用bool64我会使用它。
有人知道吗?
答案 0 :(得分:2)
没有64位宽的布尔类型。布尔类型列在documentation:
中4种预定义的布尔类型是Boolean,ByteBool,WordBool和LongBool。布尔值是首选类型。其他存在是为了提供与其他语言和操作系统库的兼容性。
布尔变量占用一个字节的内存,ByteBool变量也占用一个字节,WordBool变量占用2个字节(一个字),LongBool变量占用4个字节(2个字)。
因此,如果您需要一个充当布尔值的64位类型,则必须使用64位整数。你可以使用带有隐式强制转换操作符的增强记录使语法更加顺从Boolean
。
我无法想象为什么你需要一个64位的布尔值。我从未遇到过使用这种类型的库。我想知道你是不是在思考。
答案 1 :(得分:0)
FreePascal 有一个 64 位 C 布尔类型,并称之为“qwordbool”