ZHCADC5A June 2013 – June 2020
一些 MSP 系列器件支持多种数据和代码存储器模型。这些模型因允许的对象和指针大小而异。编译器使用不同的指令和重定位来实现这些模型。
节 1.9概述了 MSP 系列支持的代码和数据模型。有关存储器模型和放置约定的详细信息,请参阅节 4.3.2.1。
指针的大小根据您使用的代码和数据模型而有所不同。代码和数据模型会影响大小、对齐,以及用于函数指针、数据指针、size_t 类型和 ptrdiff_t 类型的存储空间。始终在大小为 2 位幂的容器中存储大小不是 2 的幂的指针。也就是说,20 位类型存储在 32 位中。
代码或数据模型 | 类型 | 大小 | 存储 | 对齐 |
---|---|---|---|---|
小型代码模型 | 函数指针 | 16 | 16 | 16 |
大型代码模型 | 函数指针 | 20 | 32 | 16 |
小型数据模型 | 数据指针 | 16 | 16 | 16 |
小型数据模型 | size_t | 16 | 16 | 16 |
小型数据模型 | ptrdiff_t | 16 | 16 | 16 |
受限数据模型 | 数据指针 | 20 | 32 | 16 |
受限数据模型 | size_t | 16 | 16 | 16 |
受限数据模型 | ptrdiff_t | 16 | 16 | 16 |
大型数据模型 | 数据指针 | 20 | 32 | 16 |
大型数据模型 | size_t | 20 | 32 | 16 |
大型数据模型 | ptrdiff_t | 20 | 32 | 16 |