Описание вспомогательного элемента
Ниже приведено описание C-структуры, соответствующей вспомогательному элементу таблицы имен. Для включения описания в программу следует использовать файл <syms.h>.
#define SYMNMLEN 8 /* Максимальное количество символов в тексте имени */ #define FILNMLEN 14 /* Максимальное количество символов в имени файла */ #define DIMNUM 4 /* Размерность массива во вспомога- тельном элементе */
union auxent { struct { long x_tagndx; /* Номер в таблице имен начала структуры, объединения или перечисления */ union { struct { unsigned short x_lnno; /* Номер строки определения */ unsigned short x_size; /* Размер массива, структуры или объединения */ } x_lnsz; long x_fsize; /* Размер функции */ } x_misc; union { struct { long x_lnnoptr; long x_endndx; } x_fcn; struct { /* Если массив, то его размерности (до 4) */ unsigned short x_dimen [DIMNUM]; } x_ary; } x_fcnary; unsigned short x_tvndx; } x_sym; struct { char x_fname [FILNMLEN]; /* Имя файла (занимает весь элемент) */ } x_file; struct { long x_scnlen; /* Длина секции */ unsigned short x_nreloc; /* Число элем. с инф. о настройке ссылок */ unsigned short x_nlinno; /* Число элем. с инф. о номерах строк */ } x_scn; struct { long x_tvfill; unsigned short x_tvlen; unsigned short x_tvran[2]; } x_tv; };
#define AUXENT union auxent