許久以來,programming時常看到一堆類似的type define.
今天剛好用到,就整理一下嘍
---------------------
Linux中用户态和内核态定义了若干定长类型, 以32位无符号整数为例:
u_int32_t (BSD类型,目前netfilter中就使用这种类型)
用户态定义位于sys/types.h
在内核态见头文件include/linux/types.h
typedef __u32 u_int32_t;
uint32_t (C99类型, 内核态和用户态都能使用的类型,可移植性更好)
在用户态中见头文件/usr/include/stdint.h
在内核态见头文件include/linux/types.h
typedef __u32 uint32_t;
u32
typedef unsigned int u32;
include/asm-i386/types.h
只能在内核态使用
__u32 (Linux严格类型,内核中应该使用这种类型)
typedef unsigned int __u32;
include/asm-i386/types.h
也可以在用户态使用
unsigned long
unsigned int
标准C语言整数类型, 架构相关
----轉自周知远的博客
總結來說,推薦使用 uintxx_t 系列的C99 type.
只要include 即可。