GCC按位属性
GCC的__attribute__(bitwise)
是什么意思? GCC-4.6的信息页面中未提及该属性。 我在文件open-iscsi-2.0.871/include/iscsi_proto.h
中open-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中 。
谷歌在这里说,按位不再有多大意义了。