2013-03-13 16 views
0

什么呢什么是与枚举器列表成员关联的整数值?

enum Type { 
    TYPE_NONE  = 'none', 
    TYPE_C_STRING = 'cstr', 
    TYPE_INT32 = 'in32', 
    TYPE_INT64 = 'in64', 
    TYPE_FLOAT = 'floa', 
    TYPE_POINTER = 'ptr ', 
}; 

的意思将与枚举列表的成员关联的整数值?

+0

这是什么语言?看起来可能是C,但我不确定。 – danfuzz 2013-03-13 20:17:47

+0

C++这是从Android代码中我可以看到很多这些声明在android – Gags 2013-03-13 20:18:37

+0

这是非法的在C和C + +('''分隔_char_值,并且''none''绝对不是)。除非他们使用允许4字节(=='int'?)“字符”常量的扩展名(看起来像是由''ptr'...) – vonbrand 2013-03-13 20:52:29

回答

0

表格'XXXX'是一种使用ASCII字符形成更大的常量(这在Unicode之前)的方法。 ASCII值以平台相关的顺序组合以形成最终的常量。

有关它做什么GCC的文档,请参阅http://gcc.gnu.org/onlinedocs/cpp/Implementation_002ddefined-behavior.html#Implementation_002ddefined-behavior

在GCC(这是Android使用),它看起来像字符组合的左到右高,以低位,所以'ABCD'将具有值0x41424344

+0

谢谢@ danfuzz任何想法如何将ASCII值合并到得到最后的常数?我在网上找不到这个。这是否对ASCII字符数有上限?我想这可能会少于4,但我没有发现任何地方其穿越4. – Gags 2013-03-13 20:24:41

+0

我更新了我的答案。注意:我不是100%确定的。 – danfuzz 2013-03-13 20:25:18

+0

再次更新,参考GCC文档。 – danfuzz 2013-03-13 20:36:06