大小-变体变量类型
大小变体变量类型同时具有 32 位方式和 64 位方式。
大小变体数据类型列示如下:
| 类型 | 32 位大小 | 64 位大小 |
|---|---|---|
| 长整型 | 4 | 8 |
| 指针类型 | 4 | 8 |
在上表中,指针类型指的是 char *、int *、struct foo * 和 unsigned long * 等类型。
以下语义规则适用于使用以上任何一种类型定义的变量,即“long”和“pointer”。 不管变量是结构的成员还是并集的成员,也不管是否声明为单个变量,这些规则都适用:
- 自动类
- 变量方式将取决于被探测进程的方式(32 或 64)。
- 线程局部类
- 变量方式将取决于被探测进程的方式(32 或 64)。
- 全局类
- 此变量总是视为处于 64 位方式,而不管被探测进程的方式如何。 这样就可允许 32 位和 64 位进程安全地使用该变量,而不会丢失任何数据。
- 内核全局类
- 由于AIX® 6.1及更高版本唯一支持的内核是 64 位内核,因此作为长或指针的内核变量始终是 64 位模式。
- 入口类
- 如果为函数的任何参数在函数原型中定义了长整型或指针类型,那么相应入口类变量(__arg1 到 __arg32)的方式将取决于被探测进程的方式(32 或 64)。
- 出口类
- 如果在函数原型中将长整型或指针类型定义为函数返回值的类型,那么出口类变量 (__rv) 的方式将取决于被探测进程的方式(32 或 64)。
- 内置类
- 这些变量通常具有大小不变的类型,但 __r3 到 __r10 内置类例外,这些内置类被定义为具有无符号的长整型类型,因此,它们对于 32 位进程是 32 位长整型,而对于 64 位进程是 64 位长整型。
@@BEGIN 和 @@END 调查总是以 64 位方式发出。
Vue中的数据类型
除传统 C-89 数据类型外, Vue 语言还接受三种特殊数据类型。