首页 > 编程知识 正文

arm什么意思中文,arm汇编指令

时间:2023-05-06 07:27:21 阅读:174919 作者:1542

今天看代码的话,会看到以下代码。

struct dsi_ctrl_hdr {char dtype; /* data type */char last; /* last in chain */char vc; /* virtual chan */char ack;/* askackfromperipheral */char wait; /* ms */short dlen; /* 16 bits */} __packed; 结构的末尾用__packed限定。 因为不知道那个的使用方法,所以用百度整理了__packed的作用和使用方法。

__packed修饰符将所有有效类型的对齐边界设置为1。 也就是说:

1 .不插入填充以对齐压缩对象

2 .使用未对齐的访问读取或写入压缩类型的对象。

使用__packed修饰符声明结构或联盟时,__packed会应用于该结构或联盟的所有成员。 成员之间或结构末尾未填写任何内容。 必须使用__packed声明压缩结构的所有子结构。 可以单独压缩非压缩结构的整数子场。

使用方法

__packed修饰符在将结构映射到外部数据结构或访问未对齐的数据时非常有用。 但是,由于访问开销相对较高,通常对节省数据大小没有什么帮助。 通过只压缩需要压缩的结构中的字段,可以减少未对齐的访问次数。

限制

以下限制在使用__packed时适用。

1、__packed修饰符不能用于没有使用__packed声明的结构。

2、与其他类型修饰符不同,不能同时具有相同结构类型的__packed版本和非__packed版本。

3、__packed修饰符不影响整数局部变量。

4、压缩结构或联合与对应的非压缩结构分配不兼容。 由于这些结构具有不同的内存布局,因此将压缩结构分配给未压缩结构的唯一方法是逐场复制。

5、未定义类型转换对__packed的影响。 也没有定义将未压缩结构类型转换为压缩结构类型的影响。 可以将指向整数的指针类型显式或隐式转换为指向压缩整数的指针类型。 也可以对char类型进行__packed类型转换。

6、不存在压缩数组类型。 压缩数组是压缩类型的对象数组。 数组未进行填充。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。