如何确定Linux内核编程中的单词大小?

时间:2014-11-13 13:54:38

标签: linux linux-kernel kernel kernel-module computer-architecture

在用户空间代码中,使用宏__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

2 个答案:

答案 0 :(得分:2)

  

Linux下的每个受支持的体系结构都定义了BITS_PER_LONG   &LT; ASM / types.h中&GT;到C长型的长度,即系统   字大小。

来自http://www.makelinux.net/books/lkd2/ch19lev1sec2

答案 1 :(得分:-1)

任何体系结构中的字大小都等于长数据类型的大小。 所以使用  #define __WORDSIZE sizeof(long)

您也可以使用指针的大小。