【发布时间】:2015-11-24 16:54:12
【问题描述】:
我需要一个字符大小的所有位都为 1,而我知道在 C 中有limits.h,而vala 有int.MAX,我不确定字符大小。
我怎样才能找到它 - 一个字符大小 - 并确定生成我的位掩码,而不是使用 0xFFFF ?
【问题讨论】:
标签: vala
我需要一个字符大小的所有位都为 1,而我知道在 C 中有limits.h,而vala 有int.MAX,我不确定字符大小。
我怎样才能找到它 - 一个字符大小 - 并确定生成我的位掩码,而不是使用 0xFFFF ?
【问题讨论】:
标签: vala
apmasell 是对的,但我不太喜欢他的回答。如果你想要 char 的大小(以字节为单位),你应该使用 sizeof(char) 而不是依赖于 glib vapi 中的值保持不变。
char.MAX,如果存在,则不会是 0xff (255),而是 0x7f (127),但这不是掩码的正确值。从实际的角度来看,假设 0xff 是正确的值可能是安全的,但如果您想安全起见,您可以使用 ~((char) 0)。
【讨论】:
const uchar CHARMAX = 0xFF;,因为这是我真正想要的。我想我现在将使用const uchar CHARMAX = ~((uchar) 0);
在 Vala 中,char 是一个字节。这是 VAPI 声明:
[IntegerType (rank = 2, min = 0, max = 127)]
public struct char {
【讨论】: