Типы переменных с переменным размером
Типы переменных с переменным размером могут использоваться как в 32-разрядном, так и в 64-разрядном режиме.
Типы данных с переменным размером перечислены ниже:
| Введите | Размер в 32-разрядном режиме | Размер в 64-разрядном режиме |
|---|---|---|
| long | 4 | 8 |
| Типы указателей | 4 | 8 |
В приведенной выше таблице тип указателя ссылается на такие типы, как char *, int *, struct foo *, unsigned long * и так далее.
Следующие семантические правила применяются к переменным, которые определены с помощью одного из указанных выше типов, то есть для "long" и "pointer". Правила применяются независимо от того, являются ли переменные элементами структуры или объединения, или они объявлены как отдельные переменные:
- Автоматический класс
- Режим переменной будет зависеть от режима тестируемого процесса (32 или 64).
- Класс локальной нити
- Режим переменной будет зависеть от режима тестируемого процесса (32 или 64).
- Глобальный класс
- Переменная всегда обрабатывается в 64-разрядном режиме, независимо от режима тестируемого процесса. Это позволяет безопасно использовать переменную как в 32-разрядных, так и в 64-разрядных процессах без потери данных.
- Глобальный класс ядра
- Переменные ядра, которые являются указателями или имеют тип long, всегда обрабатываются в 64-разрядном режиме, как единственном поддерживаемом ядре для AIX 6.1.
- Класс входа
- Если тип long или pointer определен в прототипе функции для любого из параметров функции, режимы соответствующих переменных класса входа (от __arg1 до __arg32) будут зависеть от режима тестируемого процесса (32 или 64).
- Класс выхода
- Если тип long или pointer определен в прототипе функции как тип значения возврата функции, режимы переменной класса выхода (__rv) будут зависеть от режима тестируемого процесса (32 или 64).
- Встроенный класс
- Эти переменные обычно имеют тип постоянного размера, кроме встроенных переменных от __r3 до __r10, которые определены с помощью типа long без знака и имею длину 32 бита для 32-разрядных процессов и 64 бита для 64-разрядных процессов.
Тесты @@BEGIN и @@END всегда выполняются в 64-разрядном режиме.
Типы данных в Vue
Язык Vue принимает три специальных типа данных в дополнение к обычным типам данных C-89.