【文件属性】:
文件名称:类型说明-复高斯分布的数学基础理论
文件大小:6.48MB
文件格式:PDF
更新时间:2021-06-08 13:20:36
嵌入式 Linux C
表 7.4 类型说明
类 型 描 述
s8 带符号字节
u8 无符号字节
s16 带符号 16 位整数
u16 无符号 16 位整数
s32 带符号 32 位整数
u32 无符号 32 位整数
s64 带符号 64 位整数
u64 无符号 64 位整数
这些长度明确的数据类型大部分是通过 typedef 对标准的 C 类型进行映射得到的,在
ARM-Linux 中的就有如下定义:
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;
typedef __signed__ long long __s64;
typedef unsigned long long __u64;
7.3.2 数据对齐
对齐是数据块跟内存中的相对位置相关的话题。如果一个变量的内存地址正好是它长度
的整数倍,它就被称作是自然对齐的。例如,对于一个 32 位类型的数据,如果它在内存中的
地址刚好可以被 4 整除(最低两位是 0),那它就是自然对齐的。
一些体系结构对对齐的要求非常严格。通常基于 RISC 的系统载入未对齐的数据会导致
处理器陷入(一种可处理的错误);还有一些系统可以访问没有对齐的数据,但性能会下降。
编写可移植性高的代码要避免对齐问题,保证所有的类型都能够自然对齐。
7.3.3 字节顺序
字节顺序是指一个字中各个字节的顺序。处理器对字取值时既可能将最低有效位所在的
字节当作第一个字节(最左边的字节),也有可能将其当作最后一个字节(最右边的字节)。
如果最高有效位所在的字节放在最高字节位置上,其他字节依次放在低字节位置上,那
么这种字节顺序称作高位优先(big-endian)。如果最低有效位所在的字节放在最高字节位置
上,其他字节依次放在低字节位置上,那么就称作低位优先(little-endian)。
7.4 C 和汇编的接口
C 语言是一种优秀的中级语言,它既可以实现高级语言的模块化编程,又可以实现很多底