关于u16的一点理解

2019-08-17 06:03发布

刚才看程序时候遇到u8 u16 u32,然后查了查资料,关于他们含义的一点理解。
u8、u16、u32
u8    无符号字符型(8位)
u16  无符号短整型(16位)
u32  无符号长整型(32位)

刚才碰到的问题是定义一个u16的数组 u16 a[10],这个u16的意思是不是就是定义数组中的每一个数最高位是16位,
也就是,可以存放字符(字符占8位)abc等,
也可以存放字(一个字是两个字节,所以占16位),
同样也可以存放数字123(但是存放数的最大不能超过2^16)等,
是这个意思吗


想得不知道对不对,以前觉得C语言基础还可以,感觉学32以后用到C语言才知道很渣,还忘各位兄弟指点小弟一下。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
yuzeyuan1
2019-08-17 11:17
stm32f103ZE 发表于 2017-6-21 16:25
刚才DMA历程中看到条代码
const u8 TEXT_TO_SEND[]={"ALIENTEK Elite STM32F1 DMA 串口实验"};
后面串 ...

一个汉字算两个字节,这部分代码的意思是,开一块空间(没有确认大小),第一个位置存A,第二个位置存L等等,第N个位置和第N+1个位置存“串”(因为一个汉字的GBK码是两个字节,它会自动用GBK码表示,比如串字可能就是0xA1,0x3D,所以可以存)。

然后u16 a[10]这么定义一般来说A里面东西都是同一类型的,没有人把一堆不同类型的东西看一个数组里(结构体除外)。你上面的英文+汉字,其实英文会自动转成ASCII 码,汉字会自动转成GBK码,所以类型也是一样的,都是u8。

至于结构体,额,不会,我也正在学它。

一周热门 更多>