Классы памяти
В поле, указывающем класс памяти, хранится одно из перечисленных ниже значений. Именованные константы определены во включаемом файле <storclass.h>.
Обозначение | Значение | Смысл класса памяти |
C_EFCN | -1 | Физический конец функции |
C_NULL | 0 | - |
C_AUTO | 1 | Автоматическая переменная |
C_EXT | 2 | Внешнее имя |
C_STAT | 3 | Статический |
C_REG | 4 | Регистровая переменная |
C_EXTDEF | 5 | Внешнее определение |
C_LABEL | 6 | Метка |
C_ULABEL | 7 | Неопределенная метка |
C_MOS | 8 | Элемент структуры |
C_ARG | 9 | Аргумент функции |
C_STRTAG | 10 | Начало структуры |
C_MOU | 11 | Элемент объединения |
C_UNTAG | 12 | Начало объединения |
C_TPDEF | 13 | Определение типа |
C_USTATIC | 14 | Неинициализированный статический |
C_ENTAG | 15 | Начало перечисления |
C_MOE | 16 | Элемент перечисления |
C_REGPARM | 17 | Регистровый параметр |
C_FIELD | 18 | Битное поле |
Обозначение | Значение | Смысл класса памяти |
C_BLOCK | 100 | Начало или конец блока |
C_FCN | 101 | Начало или конец функции |
C_EOS | 102 | Конец структуры |
C_FILE | 103 | Имя файла |
C_LINE | 104 | Только для внутреннего пользования |
C_ALIAS | 105 | Синоним |
C_HIDDEN | 106 | Аналог статического; используется, чтобы избежать конфликта имен |
Все перечисленные классы памяти, за исключением C_ALIAS и C_HIDDEN, генерируются при выполнении команд cc и as. Класс памяти C_HIDDEN никакими средствами системы UNIX не используется.
Некоторые из перечисленных классов памяти предназначены только для внутреннего использования C-компилятором. Таковы C_EFCN, C_EXTDEF, C_ULABEL, C_USTATIC и C_LINE.