在用户空间代码中,使用宏__WORDSIZE
,包含在<bits/wordsize.h>
中。但是,当我进行Linux内核编程时,__WORDSIZE
似乎不可用。
如果包含<bits/wordsize.h>
,则会收到编译错误,说:
error: bits/wordsize.h: No such file or directory
但是如果不包含<bits/wordsize.h>
,它将收到另一个编译错误,说:
error: ‘__WORDSIZE’ undeclared.
内核编程似乎不支持<bits/wordsize.h>
头文件。我该怎么做才能确定Linux内核编程中的单词大小?
P.S。我的编译器版本是gcc (GCC) 4.4.6
。
答案 0 :(得分:2)
Linux下的每个受支持的体系结构都定义了BITS_PER_LONG &LT; ASM / types.h中&GT;到C长型的长度,即系统 字大小。
答案 1 :(得分:-1)
任何体系结构中的字大小都等于长数据类型的大小。
所以使用
#define __WORDSIZE sizeof(long)
您也可以使用指针的大小。