GCC - The Complete Reference, страница 14

DJVU-файл GCC - The Complete Reference, страница 14 Информатика (599): Книга - 2 семестрGCC - The Complete Reference: Информатика - DJVU, страница 14 (599) - СтудИзба2015-07-19СтудИзба

Описание файла

DJVU-файл из архива "GCC - The Complete Reference", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "информатика" в общих файлах.

Просмотр DJVU-файла онлайн

Распознанный текст из DJVU-файла, 14 - страница

В примере макрос с именем монк содержит преобразованную к строковому типу переменную, объединяемую с другими строками, которые находятся рядом с ним в макроопределении: «Пе11пе МОНК(АИПТВВИ] Х рг1пее("ТЬе Сета " №АВОТЕВИ " 1в а всг1пяХп") иомк(А со В]( В выводе программы мы увидим: ТЬе Сект А Ео В 1в а вст1пя ° Макрос может быть определен без его значения. Несмотря на то, что он не имеет связанного с ним значения для подстановки, он, тем не менее, считается определенным и может использоваться в качестве проверяемого флага. ° Вариативиыймакрос (тапа())с тасго) содержит переменное число аргументов. Аргументы, представленные троеточием "...", сохраняются в строчной форме через запятую в стандартной переменной згА АИОЯ „расширяемой внутри макроса.

В следующем примере макрос принимает любое количество аргументов. №Пе11пе егг(...) Ерт1пс(ведетт, ЧА АВОВ ) етт("ав ти)Хп","ТЬе етгот соое ", 48)5 Вот результат на выходе препроцессора после обработки этих двух строк: ерт1пее(всоегт,"Ъв ввзХп","ТЬе егтот со((е ", 48)5 Вариативный макрос может иметь настолько большой список параметров, насколько позволяет величина содержащей его переменой. Далее — пример макроса, имеющего два фиксированных аргумента, за которыми следует открытый список параметров: б4 Часть )1. Использование Сборнсгс Компилятора «йе11пе еххоис(а,Ь,...) хрх1пс(всйехх,"У11е Ъв Ь1пе Вх)1п",а,Ъ)( ерх1пе(вецехх, уа ите ) Пример использования этого макроса: еххсис( угЬВ , Ьгня ,"Ппехрессед Еееп1пас1оп1п") Во всех предыдущих формах вариативных макросов требовалось присутствие хотя бы одного параметра, чтобы удовлетворялись требования к переменному списку параметров.

Потому что, когда мы использовали функцию йрк1пе ( ) внутри макроса, перед тгд вдов стояла запятая. Можно помещать тгд дмв в список аргументов особым оператором объединения строк, чтобы в случае пустого списка аргументов запятая была удалена. Как в таком примере: Ерх1пс№(веаехх, «« Уа Лнав ] Феггог и Фааггппя Директива «ехгок вызывает сообщение препроцессора о критической ошибке и его остановку. Она может использоваться для перехвата известных условий, при которых скомпилированный код будет заведомо неработоспособным. К примеру, следующий код будет успешно скомпилирован только в том случае, когда определен некоторый макрос с именем ип1х «1№пйех ип1х « еехсх "тЬ1в веес1оп н111 оп1у мсек оп ШПХ вувсепв" №епй11 Директива «макп1пд действует подобно директиве «еххох, за исключением того, что она не является критической, препроцессор продолжает работу после вывода сообщения. ЮИ, ФеИ, ФеЬе и ФепдИ Директива «1й вычисляет и проверяет результат арифметического выражения условия.

В случае, если он не равен нулю, то условие считается истинным. В этом случае условный код, стоящий в блоке условной директивы до соответвуюшей закрывающей директивы («е1Н, «е1ве или «епб1«), передается на выход. В противном случае условие считается ложным и код блока не передается на выход препроцессора н, соответственно, не компилируется. В примере строковая переменная объявляется только тогда, когда значение Соцввт не равно нулю. «11 Со(нгг сЬае *деве "ТЬе соипс 1е поп-веко'М «епй11 Далее перечислены правила и условия, которые применяются к условным директивам и к выражениям условий, ° Выражение условия может включать целочисленные константы и имена не- пустых макросов, те.

макросов, содержащих значение. ° Для определения порядка вычисления выражения могут применяться скобки. Глава 3. Препроцессор срр б5 Выражение может включать в себя арифметические действия в форме операторов +, —, ", /, «и», которые действуют также, как такие же целочисленные арифметические операторы в языке С. Действия производятся над числами, формат которых соответствует наибольшему целочисленному формату, поддерживаемому целевой платформой. Обычно 64 бита. Выражение может содержать операторы сравнения >, <, >, <= и =, действующие так же, как соответствующие им в языке С. Выражение может включать логические операторы пв и 11. Для логического инвертирования результата выражения может быть использован оператор отрицания "1".

К примеру, следующее выражение истинно, если ьхмхв не более 12: «йй ЩЬ|МХВ > 1З1 ° Если нужно проверить, определен ли какой-либо макрос, для этого может быть использован оператор аеййпеа. Следующее выражение истинно, только если определен макрос с именем мхвпп: «йй аеййпеа<МПия1 ° Оператор отрицания "!" часто используется в сочетании с аеййпеа для того, чтобы проверить, что макрос с интересующим именем не назначен, например: «йй ~аей1пеа!Мхмкп) ° Идентификатор, не определенный как макрос всегда возвращает нулевое значение.

Для выдачи сообщения в случае использования такого индентификатора в выражениях можно использовать опцию командной строки -мппаей. Имена макросов, определенных как имеющие аргументы, всегда возвра;щают ноль. ° Для выдачи препроцессором сообщения в подобном случае также используют опцию -мппаей. ° Директива «е1ве может быть использована для представления альтернатив- ного кода, который компилируется тогда, когда выражение условия ложно. Применение этой директивы показано в следующем примере: «йй мхнтхт <= 5 №аеййпе МхнтЬОО 11 «еьве «аеййпе мхнтьоа 14 «епайй ° Директива «е1йй используется для предоставления одного или больше альтернативных выражений, как в этом примере: «йй мхмтхт <=5 «аей1пе МхнтЬОО 11 «еьйй МхмтХт == 5 «аеййпе МхмтЬОа 1З «еьйй МхнтХт «=П «аеййпе МхмтЬОО 1З 3 А грмффю< бб Часть!1. Использование Сборного Компилятора «е1ве «сет1пе Мтйтьсс 14 «епс1« Мйе1, 10пде1„Фе!зе и тепдо Строки кода находящиеся после директивы «1Ыег компилируются при условии, что макрос с указанным именем определен.

Действие директивы «1Ыег заканчивается следующей за ней в тексте программы директивой йепб1г, В примере массив объявляется при условии, что макрос Мтытдппдт определен: «1Ыет мтитлпвдт гпе хагауг20] «епсьт г* мтмтлнат *г Комментарий в строке с директивой йеп10 не обязателен.

Он только служит для улучшения читаемости кода. Противоположной по отношению к $1Ыег является директива $1гпбег, она служит для условной компиляции стоящего после нее кода, когда указанный ею макрос не определен. Директива йе1ве может использоваться после $1Ыет для определения альтернативного кода. В приводимом примере, если макрос мХмтднпдт определен, то массив будет объявлен типа йпс, в противном случае он будет иметь тип сЬаг: «ьыет Мтитаннат 1пс хаггау[203г «е1ве спаг хаггауИ01г «епеат г* Мтмтлипдт *г Другие директивы могут включаться в код, компилируемый по условию.

Это относится также и к директивам «1Ыег, «йгпбег и «1г, однако каждой из подобных директив должна быть должным образом сопоставлена соответствующая ей «епбхг. Ф!псЫе По директиве ййпс1пбе препроцессор проводит поиск файла с указанным именем и вставляет его содержимое в текст совершенно так же, как он мог бы быть туда помещен при помощи текстового редактора. Файл, включаемый таким образом, в общем случае считается заголовочньин файлом С, его имя обычно имеет суффикс .

Ь, хотя это может быть любой текстовый файл с любым именем. Директива апс1пбе имеет две формы. Первая, используемая более для системных заголовочных файлов, помещает имя файла в угловые скобки ("апй1е Ьгасйегз"). Другая, чаще применяемая для вставки пользовательских заголовочных файлов, — в двойные кавычки. Пример для обеих форм: «1пс1пее <вуввеад.Ь> «1пс1сде "вувпеаС.Ь" Глава З. Препроцессор срр 67 Далее следует список свойств и правил, которые действуют для директивы №1пс1ийе: Если имя файла окружают угловые скобки, то поиск файла начинается с каталогов, указанных с использованием опции -1, и затем продолжается в стандартном наборе системных каталогов.

Если имя файла окружают кавычки, то поиск начинается с текущего каталога (т.е того, в котором находится исходный Файл) и затем продолжается по правилам, действующим для директивы с угловыми скобками. В системах 0Ы!Х стандартный набор системных каталогов выглядит следующим образом: /пвг/1оса1/1пс1ийе /пвг/11ыдсс-11ЫЕагдес/гегв1оп/1пс1ийе /ивг/Еагдес/1пс1пйе /пвг/1пс1пйе Для поиска заголовочных файлов используются два различных списка каталогов. Стандартные системные заголовочные файлы находятся в каталогах из второго списка.

Оция командной строки -1 добавляет каталоги в список для поиска первой очереди. Опции -ргеИх, -м1снрге11х и -1й1гайсег предназначены для манипуляций с именами каталогов во втором списке каталогов для поиска файлов. В случае, когда ОСС компилирует программу на языке С++, каталог /ивг/ 1пс1пйе/д++вэ проверяется на наличие указанного файла прежде всех других стандартных каталогов. Относительный путь к каталогу может использоваться вместе с именем файла.

Например, если вы определите директиву №1пс1пйе <вув/е1ме. Ь>, то препроцессор будет искать файл е1ве. Ь в подкаталогах вув всех системных каталогов. Символ наклонной черты "/" ("з!азЬ") всегда воспринимается как разделитель имен в пути к каталогу, даже в тех системах, которые используют для этой цели другой символ, например, обратную наклонную черту "~" ("Ьаскз(азй"). Имя файла воспринимается в таком виде, как оно указано.

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