GCC按位属性

GCC的__attribute__(bitwise)是什么意思? GCC-4.6的信息页面中未提及该属性。 我在文件open-iscsi-2.0.871/include/iscsi_proto.hopen-iscsi-2.0.871/include/iscsi_proto.h进行了open-iscsi-2.0.871/include/iscsi_proto.h在源代码项目Open-ISCSI中它被用作

 ... /* * If running svn modules we may need to define these. * This should not go upstream since this is already properly defined there */ #ifdef __CHECKER__ #define __bitwise__ __attribute__((bitwise)) #else #define __bitwise__ #endif #ifdef __CHECK_ENDIAN__ #define __bitwise __bitwise__ #else #define __bitwise #endif /*! initiator tags; opaque for target */ typedef uint32_t __bitwise__ itt_t; /*! below makes sense only for initiator that created this tag */ #define build_itt(itt, age) ((__force itt_t)\ ((itt) | ((age) << ISCSI_AGE_SHIFT))) #define get_itt(itt) ((__force uint32_t)(itt_t)(itt) & ISCSI_ITT_MASK) #define RESERVED_ITT ((__force itt_t)0xffffffff) ... 

我怀疑涉及字节顺序的东西,但我无法理解上面给出的片段。

这显然不是由GCC使用,而是由Sparse使用, Sparse是Linux内核使用的C的语义解析器。 它记录在Documentation / sparse.txt中 。

谷歌在这里说,按位不再有多大意义了。