Может кто-нибудь описать, что таблица символов находится в контексте C и С++?
Что такое таблица символов?
Ответ 1
Здесь есть два общих и связанных значения таблиц символов.
Во-первых, там есть таблица символов в ваших объектных файлах. Обычно компилятор C или С++ компилирует один исходный файл в объектный файл с расширением .obj или .o. Это содержит набор исполняемых кода и данных, которые компоновщик может обрабатывать в рабочем приложении или в общей библиотеке. Объектный файл имеет структуру данных, называемую таблицей символов в ней, которая сопоставляет различные элементы в объектном файле именам, которые может понять компоновщик. Если вы вызываете функцию из вашего кода, компилятор не помещает конечный адрес подпрограммы в объектный файл. Вместо этого он помещает значение placeholder в код и добавляет примечание, которое сообщает компоновщику, чтобы искать ссылку в различных таблицах символов из всех обрабатываемых объектных файлов и вставлять туда окончательное местоположение.
Во-вторых, также есть таблица символов в общей библиотеке или DLL. Это создается компоновщиком и служит для обозначения всех функций и элементов данных, которые видны пользователям библиотеки. Это позволяет системе выполнять привязку во время выполнения, разрешая открытые ссылки на эти имена в том месте, где библиотека загружается в память.
Если вы хотите узнать больше, я предлагаю отличную книгу Джона Левана "Линкеры и загрузчики". текст ссылки
Ответ 2
Вкратце, это сопоставление имени, которое вы назначили переменной своему адресу в памяти, включая метаданные типа, область и размер. Он используется компилятором.
В общем, не только C [++] *. Технически, он не всегда включает прямой адрес памяти. Это зависит от того, на каком языке, платформе и т.д. Используется таргетинг компилятора.
Ответ 3
В Linux вы можете использовать команду:
nm [object file]
чтобы перечислить таблицу символов этого объектного файла.
Ответ 4
Таблица символов - это список "символов" в программе/модуле. Символы чаще всего являются именами переменных или функций. Таблицу символов можно использовать для определения того, где будут находиться переменные или функции памяти.
Ответ 5
Отметьте Таблицу символов в записи в википедии.
Ответ 6
Таблица символов - важная структура данных, созданная и поддерживаемая компиляторами для хранения информации о возникновении различных объектов, таких как имена переменных, имена функций, объекты, классы, интерфейсы и т.д.