C/C++为什么总喜欢用u16 u8 这样的声明类型啊65
发布网友
发布时间:2023-10-10 03:21
我来回答
共4个回答
热心网友
时间:2024-11-17 00:25
u指的unsigned,无符号值;16,8指的是位数。
u16是16位无符号数,取值范围0~65536
u8是,0~255
同理s16是short型,-32768~32767
这不是c、c++固有的类型,一般是根据项目需要宏定义的,好处是可以直接控制数据的真实位长。
因为各个平台的默认数据长度是不一致的,比如不同平台下int有4个字节的32位,也有2个字节的16位。
通过统一定义在移植的时候和使用的时候不会由于位计算错误导致程序错误。
热心网友
时间:2024-11-17 00:25
这样写非常直观,不用担心平台的不同可移植性好,它的字节数一看就知道,u16是16位2个字节,
u8一个字节,不会出现像int在vc下4个字节,在tc和gnu中2个字节这种情况,u16,u8这样表示不会有二义性!
热心网友
时间:2024-11-17 00:25
为了方便才这么写的,u16(也有用word表示的) 就是unsigned int;u8(也有用byte表示的)就是unsigned char;s16(或sword)就是signed int
热心网友
时间:2024-11-17 00:26
一般这是经过宏定义的
比如头文件中定义 #define unsigned short u8
在后面的程序中就可以很方便的引用u8代替unsigned short,使程序简洁易懂