Операционная система UNIX. Руководство программиста

     

Связь между типом и классом памяти


Ниже перечислены типы, допустимые для каждого класса памяти.



Класс памяти d-поля Базовый тип
Функция? Массив? Указатель?
C_AUTO нет да да Любой, кроме T_MOE
C_EXT да да да Любой, кроме T_MOE
C_STAT да да да Любой, кроме T_MOE
C_REG нет нет да Любой, кроме T_MOE
C_LABEL нет нет нет T_NULL
C_MOS нет да да Любой, кроме T_MOE
C_ARG да нет да Любой, кроме T_MOE
C_STRTAG нет нет нет T_STRUCT
C_MOU нет да да Любой, кроме T_MOE
C_UNTAG нет нет нет T_UNION
C_TPDEF нет да да Любой, кроме T_MOE
C_ENTAG нет нет нет T_ENUM
C_MOE нет нет нет T_MOE
C_REGPARM нет нет да Любой, кроме T_MOE
C_FIELD нет нет нет T_ENUM, T_UCHAR, T_USHORT, T_UINT, T_ULONG
C_BLOCK нет нет нет T_NULL
C_FCN нет нет нет T_NULL
C_EOS нет нет нет T_NULL
C_FILE нет нет нет T_NULL
C_ALIAS нет нет нет T_STRUCT, T_UNION, T_ENUM

Условия относительно d-полей касаются всех полей d1..d6 с тем исключением, что не может быть двух последовательных производных типов функция.

Хотя аргументы функции и могут быть объявлены как массивы, они все равно трактуются как указатели. Поэтому аргумент функции не может иметь массив в качестве своего первого производного типа.



Содержание раздела