6 ответов:
здесь есть два общих и связанных значения таблиц символов.
во-первых, есть таблица символов в объектные файлы. Обычно, компилятор C или C++ компилирует один исходный файл в объектный файл с помощью .obj или .расширение вывода. Он содержит коллекцию исполняемого кода и данных, которые компоновщик может обрабатывать в рабочем приложении или общей библиотеке. Объектный файл имеет структуру данных, называемую таблицей символов, которая отображает различные элементы в объектном файле к именам, которые компоновщик может понять. Если вы вызываете функцию из своего кода, компилятор не помещает окончательный адрес подпрограммы в объектный файл. Вместо этого он помещает значение заполнителя в код и добавляет примечание, которое говорит компоновщику искать ссылку в различных таблицах символов из всех объектных файлов, которые он обрабатывает, и вставлять туда окончательное местоположение.
во-вторых, есть также таблица символов в общей библиотеке или DLL. Это производится с помощью линкера и служит для обозначения всех функций и элементов данных, которые видны пользователям библиотеки. Это позволяет системе выполнять связывание во время выполнения, разрешая открытые ссылки на эти имена в том месте, где библиотека загружается в память.
Если вы хотите узнать больше, я предлагаю отличную книгу Джона Левина "Linkers and Loaders".текст ссылки
вкратце, это сопоставление имени, которое вы назначаете переменной для ее адреса в памяти, включая метаданные, такие как тип, область и размер. Он используется компилятором.
Это вообще, а не только C[++]*. Технически, он не всегда включает прямой адрес памяти. Это зависит от языка, платформы и т. д. компилятор нацелен.
в Linux вы можете использовать команду:
nm [объектный файл]
перечислить таблицу символов этого объектного файла.
таблица символов-это список "символов" в программе/блоке. Символы чаще всего являются именами переменных или функций. Таблица символов может использоваться для определения того, где в памяти будут располагаться переменные или функции.
Проверьте Таблица Символов запись в Википедии.
таблица символов-это важная структура данных, созданная и поддерживаемая компиляторами для хранения информации о появлении различных сущностей, таких как имена переменных, имена функций, объекты, классы, интерфейсы и т. д.
Comments