这是参考页面的 C 代码示例。
signed int _exponent:8;
'8'和'8'本身之前的冒号是什么意思?
这是一个位域。它仅在struct
定义中有效,这意味着系统将仅使用 8 位作为整数。
它是一个位域,是一种晦涩难懂且被误导的结构特征。这应该足以让您查找处理其他人代码中的位域所需的信息。至于你自己的代码,永远不要使用位域。
编辑:根据 Zack 的要求,与执行自己的位算术相比,位域有明显的缺点,而且没有优点。这里是其中的一些:
对于单位标志,使用您自己的位算术而不是位域是完全不费吹灰之力的。对于需要打包的较大值,如果将所有位算术都写出来太痛苦,请编写一些简单的宏。
当该语句位于结构内时,表示位字段。