что такое таблица символов?

<p>может кто-нибудь описать, что такое таблица символов в контексте c и c++?</p>

<p>здесь есть два общих и связанных значения символов таблиц.</p><p>во-первых, в ваших объектных файлах есть таблица символов. обычно компилятор c или c++ компилирует один исходный файл в объектный файл с расширением .obj или .o. он содержит коллекцию исполняемого кода и данных, которые компоновщик может обработать в работающее приложение или общую библиотеку. в объектном файле есть структура данных, называемая таблицей символов, которая отображает различные элементы в объектном файле на имена, понятные компоновщику. если вы вызываете функцию из своего кода, компилятор не помещает окончательный адрес подпрограммы в объектный файл. вместо этого он помещает в код значение заполнителя и добавляет примечание, в котором указывается, что компоновщик должен искать ссылку в различных таблицах символов во всех объектных файлах, которые он обрабатывает, и указывать там окончательное местоположение.</p><p>во-вторых, есть также таблица символов в общей библиотеке или dll. он создается компоновщиком и служит для именования всех функций и элементов данных, которые видны пользователям библиотеки. это позволяет системе выполнять связывание во время выполнения, разрешая открытые ссылки на эти имена в место, где библиотека загружена в память.</p><p>если вы хотите узнать больше, я предлагаю отличную книгу джона левина «линкеры и загрузчики» . <a href="http://books.google.com/books?id=h34d\_jr2iikc&dq=levine+linkers+and+loaders&pg=pp1&ots=ixgckqo03w&sig=dduacrrhk6e2nmlktxbnedpwbtg&hl=en&sa=x&oi=book\_result&resnum=1&ct=result">текст ссылки</a> </p>

<p>вкратце, это отображение имени, которому вы назначаете переменную для ее адреса в памяти, включая такие метаданные, как тип, область действия и размер. используется компилятором.</p><p>в общем, не только c [++] *. технически, это не всегда включает прямой адрес памяти. это зависит от того, на какой язык, платформу и т.д. ориентируется компилятор.</p>

<p>в linux вы можете использовать команду: </p><blockquote> <p>nm [объектный файл]</p> </blockquote><p>перечислить таблицу символов этого объектного файла.</p>

<p>таблица символов - это список «символов» в программе/модуле. символы чаще всего являются именами переменных или функций. таблицу символов можно использовать для определения того, где в памяти будут находиться переменные или функции.</p>

<p>проверьте <a href="http://en.wikipedia.org/wiki/symbol\_table">таблица символов</a> википедия.</p>

<p>таблица символов - это важная структура данных, созданная и поддерживаемая компиляторами для хранения информации о появлении различных объектов, таких как имена переменных, имена функций, объекты, классы, интерфейсы и т.д.</p>