Главная » Просмотр файлов » GCC - The Complete Reference

GCC - The Complete Reference (537669), страница 31

Файл №537669 GCC - The Complete Reference (GCC - The Complete Reference) 31 страницаGCC - The Complete Reference (537669) страница 312015-07-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 31)

Использование Сбарнога Компилятора намически загружаться в память во время выполнения программы (Р1С вЂ” сокращение от "рогйбоп !пдерепдеп! соде" — "независимый от положения код"). Используя тот же исходный код„что в предыдущем примере применялся при создании статической библиотеки, два объектных файла с относительной адресацией и разделяемая библиотека из них создаются с помощью следующей последовательности команд: 3 977 -с -ЙР1с 1п1п1ппп.й -о 1п1п1ппп.о Ф 077 -с -ЙР1с 1пах1апт.г -о 1пах1ппп.о ь П77 -апахец 1п1п1ппп.о 1аах1ввпв.а -о 11Ьа1па.во Опция -с указывает компилятору вырабатывать объектные файлы без задействования компоновщика. Опция -йр1с необходима для выработки объектных файлов в формате, пригодном для их динамической загрузки из разделяемой библиотеки во время выполнения программы.

Опция -впахеб компонует все объектные файлы, перечисленные в командной строке, в разделяемую библиотеку 11Ьгв1гва. во. Для того чтобы библиотека была доступна для использования приложением, необходимо поместить ее в соответствующее расположение. Этот вопрос подробно рассматривается в главе 12. Для компиляции и компоновки программы, использующей разделяемую библиотеку, нужно только включить имя этой библиотеки в команду компилятору: 3 д77 а1ппах.г -Хп1па -о п1ппвх Опция -1 определяет, что указанное за ней имя библиотеки гв1гва,компилятор должен дополнить до 111хв1ма.

во и искать библиотеку с таким именем в каталогах, перечисленных в списке путей для поиска разделяемых библиотек. Список путей возможного расположения разделяемых библиотек указан в системной конфигурации. йайог йа(/ог — сокращение от "Кабопа! Рогггап". Это общедоступный метод предобработки, который позволяет при написании Гоггптл-программ использовать синтаксис, подобный языку С, и затем преобразовывать такой исходный код в Рогггал-код стандартного формата для дальнейшей его компиляции.

Оригинальный транслятор Яа0ог был создан Керниганом (Кегп!я)зап) и Плаугером (Р!апйег) в 1976 году. После того, как он был принят компанией АТегТ, появилось множество версий Яарог. Две последние версии можно бесплатно загрузить из ряда источников в Интернете, среди них: Ьпр;//зертгтгвкэ!ап(огд.ег!и/зойваге/шггог Ьгпз! для версии Каног77 и !зпр;//зервчвзгапГогд.есШ/зогпчаге/гаг(ог90.йггп! для версии Ка!гог90. Загружаемые файлы очень невелики и программы из них устанавливаются довольно просто.

Предоставляемая в комплекте с ними процедура инсталляции устанавливает по вашему выбору либо хаейох77 (готовый к компиляции исходный код на языке С), либо хпсйохяо (сценарий на языке Рег!). Любая из этих программ может вырабатывать Рогггап-код, пригодный для ввода в компилятор ОСС. Для дальнейшей работы пользователь должен выбрать между предлагаемыми версиями Яа0гог, поскольку они существенно между собой различаются. Каггог90 не яв- Глава 7.

Компиляция программ на языке Гонгая 143 ляется прямым расширением Ка(ГО(77. Так что не большого ума дело написать простую программу, которая будет правильно компилироваться в одном из этих стандартов, и не будет в другом. Входным языком для транслятора )(арог является Рог(гав. Обрабатываемая программа может быть написана на чистом языке Рог(гав, однако в ней допускается применение многих конструкторов, доступных в языке С. Следующий пример демонстрирует формат и расположение кода допустимой исходной программы для транслятора Яа~ог.

0 хаеоешо.г ргодгаш гаеоешо ( 1пеедег 1( 1пседег соипсегг соипсех = 10г (ох(1=0( 1<20ю 1 1+1) ( соипеег = соипеег + 52 мг1се(е,10) 1, соипсегг ) 10 хохмах (15, 15 ) г ) ела ргодгаш гаксешо Этот код может быть обработан транслятором гаейог77 и скомпилирован в го)овую для запуска программу следующими двумя командами: 3 гаегох77 <гаксешо.г >гакоешо.х 3 077 гаксешо.т -о хаксешо Файл гаебешо. я выводится транслятором Яарог, он является исходным файлом дпя компилятора Рог(гап и выглядит следующим образом: с осирис гхош Риь21с г)оша1п насяох, иехе1оп 1.0 ргодгаш гагсеша 1пседег ).

1пседег соипсех соипсех = 10 1=0 23000 1г (.пес. (1. 1Е .10) )восо 23002 соипсег = соипгех + 5 яг(се(е,10) 1, соипеег 23001 1=1+1 восо 23000 23002 сопе1пие 10 хохшае(15,15) епо ргодгаш гасоешо Особенности и расширения бй0 ГоФ"ап Компилятор ОСС поддерживает стандарт А(чЯ Ропгап 77 с несколькими специфвчными для О)ч() расширяениями. Он также включает в себя многие, хотя н не все, свойства, определенные в стандарте Еопгап 90. 144 Часть!1. Использование Сборного Компилятора Встроенные функции (1 п1г1 пз1се) компилятор Осс языка Гогггал содержит сотни встроенных функций (!пгппз!сз).

Полная документация по ним находится на юеЬ-сайте С)ч(3 и включает в себя описания не только огромного набора встроенных функций, специфичных для б)ч(! Гогггап, но также и действующих в б!Ч() Гопгап встроенных функций, определяемых другими источниками. Спецификация языка А)чБ! Гопгап 77 определяет как набор встроенных функций, наследуемых от предьиущего стандарта, так и набор специфических встроенных функций. Специфической встроенной функцией называется встроенная функция, возвращающая своеобразный (специфический) тип данных, определяемый специально для нее. Тип, возвращаемый наследуемой встроенной функцией может изменяется, в зависимости от способа ее применения, и обычно он определяется типом одного из ее аргументов.

Компилятор С СС Гогггап строже некоторых других Гогггал-компиляторов в требованиях к типам аргументов встроенных функций, поэтому есть вероятность, что д77 откажется компилировать написанную для другого компилятора программу Например, если переменная х объявлена как 1ечецее'з, то встроенная функция АВЯ () не может принять этот аргумент, потому что она определена для типа 1ЬГГЕОЕЕ 4 и не допускает снижения точности передаваемого ей числа. Необходимо внести исправления в исходный код программы, может быть просто преобразовать передаваемое значение к допустимому типу. ССС Гопгап поддерживает определяемые стандартом МПЕ-ВТ0 !753 встроенные функции втезт, 1АМР, 1ВСРЕ, 1В1тЗ, 1ЕОЯ, 10е, 1ЯЕ1пт, 1ЗВВтс, мчв1тЗ и МОт.

Все встроенные функции, которые можно найти в стандартах Гопгап 77 и (2с, доступны в д77. Они включают в себя встроенные Функции битовых операций АМР, РЯЯ1ет, ое, еяе1ет и хое. Среди других поддерживаемых встроенных функций— сРАВЯ, сРсОЯ, спехР, сРРОО, сРЯ1м, сРЯОев, Рсмвьх, РООмю6, РЯРОА1, Р1мАО, РЕЕАХь 1МАО, ЗАВЕ, ЯСОВ, ЗЕХР, ЗРОО, ЗЗ1МИ ЗЯОЕГ. Всего ПСС поддерживает 402 документированные встроенные функции языка Гогггал.

формат исходного кода (5оогсе Соде Ропп) Как уже было показано на ранее рассмотренных в этой главе примерах, ОЫ(! ГОПГал ВОСПрИНИМаст КаК ИСХОдНЫй КОд В фОрМатЕ СтаНдарта А!ч Я ГОПГаП 77, таК И в свободном формате. Свободный формам очень схож с форматом стандарта Гопгап 90, но при этом С!ч() Гопгап несколько мягче относится к таким вещам, как, например, знаки табуляции. Ниже приводится список особых для СгСС правил, применяемых к исходным текстам программ как свободного, так и фиксированного формата: ° Символы возврата каретки (СагПайе ге(вгпз).

Любые символы возврата каретки в исходных файлах игнорируются. ° Символы табуляции (ТаЬз). Каждый символ табуляции заменяется нужным количеством пробелов, выравнивая следующий за ней текст к номеру позиции, кратному восьми. Глава 7. Компиляция программ на языке гогггап 145 ° Амперсаит ("вг"). Символ "амперсант" в первом столбце строки исходного текста фиксированного формата указывает, что эта строка является продолжением предыдущей.

° Короткие строки. При применении свободного формата длина строки не имеет значения, а при фиксированном формате ее длина составляет 72 символа. Более короткие строки автоматически добавляются справа пробелами до требуемой длины в 72 символа. Это правило действует только для непродолжаемых строк и констант типа Но11ех1сЬ.

Это применяемое для фиксированного формата требование к длине строки можно отменить или изменить при использовании опции командной строки -вй1хвб-11пе-1епдсЬ. ° Длинные строки. Строка, длиннее предполагаемой длины, урезается без предупреждения. Это применяется, главным образом, для поддержки наследуемого кода Рогггал, где в столбцах с 73 по 80 может содержаться сопутствующая информация (обычно — последовательная нумерация строк). Требование к длине строки исходника фиксированного формата можно отменить или изменить использованием опции командной строки -ххдкец-11пе-1впцсь.

Комментарии (Соввепй) Для создания комментариев можно применять сочетания "/ь" и "*/", но только з случае, когда код предназначается к обработке препроцессором срр. В этом случае препроцессор удаляет блок комментария, вьщеляемый этими символами, поэтому компилятор его не видит. Форма обозначения комментария сочетанием "/ у" не используется, это сочетание используется в языке Уогггап в качестве оператора объединения строк. В языке Рогггал проекта 0)М(), как в предобрабатываемых, так и в ве подлежащих предобработке файлах, восклицательный знак (" г ") используется для укззания того, что в остальной части этой строки находится комментарий. И, конечно, для фиксированного формата буквы "с" и "с" в первой позиции означают, что строка является строкой комментария.

Знак доллара (0оПаг Ядпз) Вы можете использовать знак доллара "б" в именах с условием, что они не начинаются с этого знака. Если вы применяете такие имена в исходном файле, то при ею компиляции следует устанавливать опцию командной строки -Вбо11ак-о)к. Заглавные и строчные буквы (Сазе 5епябчйу) Существует большое число комбинируемых опций компиляции, применяемых дзя назначения тех или иных правил применения заглавных и строчных букв, По умолчанию ограничения на применение во входном исходном коде заглавных или прописных букв отсутствуют. Буквы в любом регистре воспринимаются одинаково.

Характеристики

Тип файла
DJVU-файл
Размер
6,08 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6312
Авторов
на СтудИзбе
312
Средний доход
с одного платного файла
Обучение Подробнее