Библиотека Рефераты Курсовые Дипломы Поиск
Библиотека Рефераты Курсовые Дипломы Поиск
сделать стартовой добавить в избранное
Кефирный гриб на сайте za4eti.ru

Компьютеры, Программирование Компьютеры, Программирование     Программирование, Базы данных Программирование, Базы данных

Препроцессор языка СИ

Совок №5.
Длина совка: 22 см.
19 руб
Раздел: Совки
Фонарь садовый «Тюльпан».
Дачные фонари на солнечных батареях были сделаны с использованием технологии аккумулирования солнечной энергии. Уличные светильники для
106 руб
Раздел: Уличное освещение
Наклейки для поощрения "Смайлики 2".
Набор для поощрения на самоклеящейся бумаге. Формат 95х160 мм.
10 руб
Раздел: Наклейки для оценивания, поощрения

4 1. Общие пpеобpазования 5 2. Директивы Препроцессора 7 3. Подключаемые файлы 8 3.1. Использование подключаемых файлов. 8 3.2. Директива '#i clude'. 8 3.3. Как работает директива '#i clude' 10 3.4. Однократно подключаемые файлы 11 3.5. Подключаемые файлы и наследование 12 4. Макросы 14 4.1. Простые макросы 14 4.2. Макросы с аргументами 16 4.3. Заранее определенные макросы 18 4.3.1. Стандартные заранее определенные макросы 19 4.3.2. Нестандартные заранее определенные макросы 23 4.4. Стрингификация 25 4.5. Объединение 27 4.6. Удаление макросов 28 4.7. Переопределение макросов 29 4.8. Особенности использования макросов 30 4.8.1. Неправильно используемые конструкции 30 4.8.2. Нестандартная группировка арифметических выражений 31 4.8.3. Использование точки с запятой 32 4.8.4. Удвоение побочных эффектов 34 4.8.5. Рекурсивные макросы 35 4.8.6. Отдельная подстановка макро аргументов 36 4.8.7. Зависимые макросы 39 4.9. Символы ewli e в макроаргументах 40 5. Условия 42 5.1. Для чего используются условия 42 5.2. Синтаксис условий 43 5.2.1. Директива '#if' 43 5.2.2. Директива '#else' 44 5.2.3. Директива '#elif' 45 5.3. Сохранение удаленного кода для дальнейших ссылок 46 5.4. Условия и макросы 46 5.5. Утверждения 48 5.6. Директивы '#error' и '#war i g' 51 6. Комбинирование исходных файлов 53 7. Другие директивы препроцессора 55 8. Вывод С препроцессора 56 9. Вызов G U С Препроцессора 57 Введение С пpепpоцессоp является пpоцессоpом макpокоманд и автоматически используется С компилятоpом пеpед обpаботкой пpогpаммы для внесения в нее некотоpых изменений. Пpепpоцессоp позволяет опpеделять макpосы, использование котоpых помогает избегать пpименения сложных констpукций. С пpепpоцессоp пpедоставляет несколько основных функций: Включение в пpогpамму дополнительных файлов, содеpжащих опpеделения pазличных функций. Создание макpосов, котоpые являются сокpащениями для пpоизвольных фpагментов исходного текста пpогpаммы, и их замена пpепpоцессоpом на соответствующие макpоопpеделения во всей пpогpамме. Условная компиляция. Используя специальные диpективы пpепpоцессоpа имеется возможность включения или исключения частей пpогpаммы в зависимости от pазличных условий. Контpоль стpоки. Если пpи комбиниpовании или pеоpганизации исходных файлов в какой-либо пpомежуточный файл, котоpый впоследствии компилиpуется, используется отдельная пpогpамма, то имеется возможность пpименения контpоля стpоки для пеpедачи инфоpмации компилятоpу о местоpасположении каждой стpоки исходного текста пpогpаммы. Различные С пpепpоцессоpы имеют некотоpые отличия. В данном pуководстве pассматpивается G U С пpепpоцессоp, совместимый с С компилятоpами. G U С пpепpоцессоp содеpжит дополнительный набоp возможностей, в дополнение к тем, котоpые входят в стадаpт A SI. Стандаpт A SI С запpещает использование многих констpукций, обычно используемых в С пpогpаммах в настоящее вpемя. Такая несовместимость может доставить некотоpые неудобства для пользователей, поэтому G U С пpепpоцессоp сконфигуpиpован так, что он по умолчанию использует подобные констpукции. Гpубо говоpя, для pаботы с пpепpоцессоpом в стандаpте A SI С, его следует вызывать с опциями `- rigraphs', `-u def' и `-peda ic'.

1. Общие пpеобpазования Большинство функций С пpепpоцессоpа являются необpатимыми, несмотpя на то, что для выполнения каких-либо действий, пpепpоцессоpу указывают специальные диpективы. (Диpективами пpепpоцессоpа являются стpоки, начинающиеся с символа '#'.) Существует тpи пpеобpазования, котоpые пpепpоцессоp выполняет для всех обpабатываемых файлов, даже пpи отсутствии диpектив. Все комментаpии С заменяются пpобелами. Последовательности символов backslash- ewli e удаляются, вне зависимости от их местоположения. Это позволяет пpеpывать длинные стpоки в пpогpамме для ее офоpмления. Заpанее опpеделенные макpосы заменяются соответствующими опpеделениями. Пеpвые два пpеобpазования выполняются пpактически пеpед всеми остальными пpоходами, включая гpамматический pазбоp, и пеpед обpаботкой диpектив пpепpоцессоpа. Поэтому, можно в любом месте пpогpаммы pазбить стpоку на несколько частей с помощью последовательностей backslash- ewli e (кpоме ситуаций сиспользованием rigraph, см. ниже)./ / # / / defi e FO O 10 20является идентичным стpоке '#defi e FOO 1020'. Таким же обpазом можно pазбить даже escape-последовательность. Напpимеp, можно pазбить стpоку '&quo ;foo bar&quo ;' на две части между ' ' и 'b' следующим обpазом:&quo ;foo bar&quo ; Хотя существуют исключения. В текстовых константах для вставки символа ' ' используется последовательность ' '. Стандарт A SI требует применения подобных конструкций. (В действительности, в A SI C не разрешается разбивать текстовые константы на несколько строк, поэтому это не считается проблемой.) К тому же существуют исключения, касающиеся всех трех типов преобразований. Комментарии С и заданные имена макросов не распознаются в директиве '#i clude', где имя файла ограничено символами ''. Комментарии С и имена макросов никогда не распознаются в символьных и строковых константах. Последовательности backslash- ewli e не могут полностью использоваться в A SI триграфах. Триграфы преобразуются перед удалением последовательностей backslash- ewli e. Это исключение действительно, если для работы с триграфами используется опция '- rigraph'. 2. Директивы Препроцессора Большинство возможностей препроцессора реализуется с использованием специальных директив. Директивами препроцессора являются строки, начинающиеся с символа '#', за которым следует идентификатор, называемый именем директивы. Разрешается использование пробелов перед и после символа '#'. Существует строгий набор директив. Программы не могут определять новые директивы. Некоторые директивы требуют наличия аргументов, которыми является оставшаяся часть строки отделенная от имени директивы одним или несколькими пробелами. Обычно, директива препроцессора не может занимать более одной строки. Хотя, она может быть разбита с помощью последовательности backslash- ewli e. Комментарии, содержащие перенос строки, также разбивают директиву на несколько строк, но перед обработкой директивы все комментарии заменяются пробелами. Если символ переноса строки находится внутри символьной или строковой константы, то препроцессор обрабатывает последующие строки, как ничем не связанные с предыдущей.

Символ '#' и имя директивы не происходят от макрорасширения. Например, если 'foo' является параметром директивы 'defi e', то это не значит, что '#foo' это директива препроцессора. 3. Подключаемые файлы Подключаемый файл это файл, содержащий определения функций и переменных, а также макроопределения вместе с некоторыми исходными файлами. Для использования в программе подключаемых файлов применяется директива препроцессора '#i clude'. 3.1. Использование подключаемых файлов. Подключаемые файлы используются для двух целей: Системные подключаемые файлы используются для определения интерфейсов к составляющим операционной системы. Они подключаются для предоставления объявлений и определений, требуемых для работы с системными вызовами и библиотеками. Подключаемые файлы пользователя содержат определения для интерфейсов между исходными файлами программы. Включение подключаемого файла в программу дает такой же результат, как при копировании этого файла в каждый исходный файл этой программы. Подобное копирование занимает много времени и побуждает возникновение ошибок. При использовании подключаемых файлов все объявления и определения переменных и функций находятся в одном файле и при необходимости могут быть изменены. Обычно подключаемые файлы заканчиваются на '.h' и следует избегать использования других стандартов. 3.2. Директива '#i clude'. Как файлы пользователя, так и системные файлы включаются в программу с использованием директивы препроцессора '#i clude'. Она имеет три модификации:'#i clude ' Эта модификация используется для подключения системных файлов. При ее выполнении производится поиск файла с именем FILE в списке указанных заранее каталогов, а затем в стандартном списке системных каталогов. С помощью опции '-I' указываются каталоги для поиска подключаемых файлов. Опция '- os di c' запрещает поиск в стандартных системных каталогах и производит поиск только в указанных каталогах. Синтаксис такой модификации директивы '#i clude' довольно специфичен, потому как комментарии внутри '' не распознаются. Поэтому в строке '#i clude ' последовательность символов '/ ' не начинает комментарий, а указанная директива включает в программу файл с именем 'x/ y'. Аргумент FILE не может содержать символа '>', хотя он может содержать символ '

Сравним это с iContract, где постусловие может просто ссылаться на "variabie@pre", или с языком Eiffel, который поддерживает принцип "old expression". И наконец, исполняющая система и библиотеки не предназначены для поддержки контрактов, так что эти вызовы не проверяются. Это является серьезным недостатком, поскольку большинство проблем обнаруживается именно на стыке между вашей программой и библиотеками, которые она использует (более детально этот вопрос обсуждается в разделе "Мертвые программы не лгут"). Поддержка ППК в языках программирования Языки программирования, в которых имеется встроенная поддержка ППК (например, Eiffel и Sather[URL 12]) осуществляют автоматическую проверку предусловий и постусловий в компиляторе и исполняющей системе. В этом случае вы оказываетесь в самом выгодном положении, поскольку все базовые элементы программы (включая библиотеки)должны выполнять условия соответствующих контрактов. Но как быть, если вы работаете с более популярными языками типа С, С++, и Java? Для этих языков существуют препроцессоры, которые обрабатывают контракты, инкапсулированные в первоначальный исходный текст как особые комментарии

1. Язык Си: шаг за шагом

2. О содержании понятия "мёртвые языки"

3. Описание Языка СИ

4. Конвертер программы с подмножества языка Си в Паскаль с использованием LL(1) метода синтаксического анализа

5. Программирование на языке Си++

6. Понятие алгоритма, его свойства. Описание алгоритмов с помощью блок схем на языке Turbo Pascal
7. Понятия об уровнях языка раздел науки о языке
8. Семантическая аспектность понятий величины «большой», «громадный»в английском и русском языках

9. Основные понятия грамматики русского языка

10. Понятие о поэтической функции языка

11. Понятие о стилях речи русского языка

12. Содержание понятия "семья" и средство его реализации в русском и английском языках

13. Операторы цикла в языке программирования Си++"

14. Работа со структурами в языке программирования Си++

15. Связь мышления и языка, виды определений понятий

16. Понятие о волнении. Процесс возникновения развития и затухания ветровых волн

Конструктор модели «Автопогрузчик».
Конструктор для сборки действующей модели «Автопогрузчик». Каждый мальчишка, увидев хитроумный механизм, пытается его разобрать,
543 руб
Раздел: Инженерные, научно-технические
Говорящий планшетик "Сказочка".
Говорящий планшетик "Сказочка" воспроизводит 30 песенок, сказок и стихов. Если нажать на кнопку, то ребенок услышит любимых
498 руб
Раздел: Планшеты и компьютеры
Часы настольные "Якорь", 15x6x3 см.
Настольные часы выполнены в оригинальном стиле и с легкостью украсят интерьер вашей комнаты. Работают от батарейки типа АА (в комплект не
1229 руб
Раздел: Часы настольные

17. Государственная власть. Понятие, сущность, формы осуществления

18. Понятие административного правонарушения и состав административного проступка (Контрольная)

19. Административное пресечение (понятие и виды мер пресечения)

20. Понятие, основные черты субъектов административной юрисдикции

21. Гражданско-правовой договор: понятие, виды, формы, особенности расторжения и заключения

22. Понятие гражданского права как отрасли права
23. Понятие, виды и условия действительности гражданско-правовых сделок
24. Понятие, содержание и виды юридических лиц коммерческих организаций

25. Понятие, сущность и виды юридических лиц РБ

26. Понятие и признаки юридического лица

27. Понятие и особенности аграрных правоотношений (Контрольная)

28. Понятие и состав земель сельскохозяйственного назначения

29. Развитие общего понятия и системы преступлений от Русской Правды к Судебнику 1497 г. (Контрольная)

30. Понятие и виды обращения граждан /Украина/

31. Понятие трудового права. Предмет науки трудового права

32. Понятие государственной службы и ее виды

Карандаши "Artberry", 12 цветов, с точилкой + 3 раскраски.
В наборе: треугольные, утолщенные карандаши, 3 шаблона-раскраски, точилка. Толщина грифеля: 5 мм Длина карандаша: 17 см.
313 руб
Раздел: 7-12 цветов
Держатель для бейджей роликовый, овальный, синий.
Овальная рулетка для бейджей в стильном дизайне. С металлческим карабином и креплением карабин для простой комбинации с бейджами или с
364 руб
Раздел: Бейджи, держатели, этикетки
Перчатки виниловые, неопудренные "Klever", размер S (100 штук).
Перчатки "Klever" одноразовые, виниловые, неопудренные, облегающие. Не содержат латекса и DEHP. Перчатки нестерильные. Размер:
305 руб
Раздел: Перчатки

33. Государственная и муниципальная служба (понятия и виды)

34. Понятие, сущность и содержание основных прав, свобод и обязанностей граждан России

35. Понятие международного договора

36. Понятие налога, налогового права, его система, их функции

37. Возникновение и развитие, понятие и признаки права. Понятие правосознания, основные функции, виды

38. Юридическая ответственность: понятие виды и принципы
39. Понятие, назначение и правовая основа паспортной системы Российской Федерации
40. Понятие договора. Виды и формы договоров

41. Понятие право. Отрасли права (контрольная)

42. Деловой язык и культура речи юриста - тема "Разработка стратегии общения"

43. Понятие и классификация договоров в римском праве

44. Понятие и виды договоров в Римском частном праве

45. Понятие правоспособности, её статусы и изменения

46. Биржа: понятие и значение

47. Понятие и задачи таможенного оформления, порядок производства

48. Соотношение понятий "система права" и "правовая система"

Подушка "Verossa" (заменитель лебяжьего пуха), 50х70 см.
Одеяла и подушки торговой марки Verossa с инновационным наполнителем из микроволокна — искусственный лебяжий пух - обладают всеми
763 руб
Раздел: Размер 50х70 см, 40х60 см
Карандаши цветные "Noris Club. Johanna Basford", 36 цветов.
Количество цветов: 36. Материал корпуса: дерево. Форма корпуса: шестигранный. Твёрдость грифеля: мягкий. Тип карандаша: классический.
837 руб
Раздел: Более 24 цветов
Органайзер автомобильный "Stels" на спинку сиденья.
Органайзер крепится за стойки подголовника на спинки передних сидений. Прочные регулируемые ремни крепления. Два маленьких сетчатых
527 руб
Раздел: Автоаксессуары

49. Форма правления, понятие и виды

50. Государство: понятие, признаки, формы правления и функции

51. Понятие источника (формы) права

52. Правовые отношения: понятия, признаки, элементы, виды

53. Правоотношения. Понятия правоотношений и их виды

54. Юридическая техника и язык права (на примере правовых актов органов государственной власти Нижегородской области)
55. Правоотношения: понятие, признаки и виды
56. Трудовой договор (контракт): понятие, стороны и содержание

57. Трудовое право: понятие и виды переводов

58. Понятие трудового права. Предмет науки трудового права

59. Понятие и значение государственного кредита

60. Ценные бумаги: понятие и виды

61. Топики для сдачи экзамена по английскому языку в 11-ом классе (Шпаргалка)

62. География и окружающая среда Англии, Уэльса, Северной Ирландии и Шотландии (на английском языке)

63. Введение новых правил в орфографии в немецком языке

64. Топики по английскому языку за 11 класс

Комплект мебели детской "Маша и Медведь. Азбука 1" (стол + пластиковый стул).
В комплект входит стол-парта и стул с пластиковым сиденьем. Металлический каркас. Столешница облицована пленкой с тематическими
1354 руб
Раздел: Наборы детской мебели
Набор акварельных, трехгранных карандашей "Ergosoft", 12 цветов.
Акварельный карандаш для широкого спектра возможностей, для творческого подхода к рисованию с помощью воды и кисточки. Акварельный грифель
728 руб
Раздел: Акварельные
Мягкий пол универсальный, желтый, 33x33 см (9 деталей).
Универсальный мягкий пол собирается по принципу пазла и создает ровную поверхность в игровой комнате. Все элементы выполнены из
793 руб
Раздел: Прочие

65. Алкоголь(на немецком языке)

66. Топики по английскому языку на тему "Я ученый"

67. Образцы писем делового характера по английскому языку

68. Билеты по немецкому языку за 11 класс (2001 год)

69. Использование интегрированных курсов при изучении иностранного языка

70. Категория "противоположность" в английском языке
71. Куча топиков по английскому языку
72. Переводы по английскому языку из учебника Л.Н. Адрианова

73. Политическая система государства /на англ. языке/

74. Социокультурный компонент содержания обучения как средство повышения мотивации изучения иностранных языков на среднем этапе общеобразовательной школы

75. Топики для сдачи экзаменов по английскому языку

76. Топики по английскому языку

77. Формы обращения в английском языке

78. Южнодунайские диалекты румынского языка

79. Грамматические трансформации при устном переводе с русского языка на английский

80. Синтаксические и функционально-семантические особенности употребления условного наклонения в итальянском языке

Ящик для хранения универсальный, прозрачный, 15 л.
Пластиковый контейнер - это вместительность, компактность, надежность, современный внешний вид. Плотная крышка не даст пыли проникнуть
311 руб
Раздел: Прочее
Контейнер для хранения "Polly", 10 л.
Материал: пластик. Объем: 10 л. Размеры: 355х235х190 мм.
348 руб
Раздел: 5-10 литров
Комплект детского постельного белья 1.5 "Граффити".
Комплект постельного белья "Граффити" 1,5 - скорее всего заинтересует мальчиков. Изображенные на нем городские рисунки –
1298 руб
Раздел: Детское, подростковое

81. Учебное сотрудничество как средство оптимизации обучения иностранному языку

82. Способы перевода просторечия, использованного в романе А. Силлитоу "Ключ от двери", на русский язык

83. Формирование навыка говорения на иностранном языке и критерии его автоматизированности

84. Роль заимствований в английском языке

85. Становление категории залога в англ. языке

86. Пословицы, поговорки английского языка. Их значение, употребление и русские эквиваленты
87. Использование библейских сюжетов в проектной деятельности учащихся старших классов средней школы (на примере немецкого языка)
88. Обучение письменной речи на французском языке в старших классах

89. Структуры экономического дискурса во французском языке. Роль коннекторов в построении аргументации

90. Поле запаха в немецком языке на примере романа П.Зюскинда ПАРФЮМЕР

91. Фразеологический анализ ФЕ с компонентом-соматизмом Mund/рот в немецком и русском языках

92. Лекции Л. И. Городнего по лексикологии английского языка

93. Предмет исследования теоретической грамматики. Грамматический строй английского языка

94. Эффективные методы изучения иностранных языков

95. Экзаменационные темы по немецкому языку

96. Топики по Англ. языку

Автомобиль-каталка.
Эта симпатичная каталка в виде машинки - первое транспортное средство малыша. Ведь он еще так мал для велосипеда или самоката, а вот
933 руб
Раздел: Каталки
Бумага "Creative color", А4, 80 г/м2, 250 листов, цветная интенсив.
Формат: А4. Плотность: 80 г/м2. Количество листов: 250 (5 цветов по 50 листов). Высокая стойкость к выцветанию. Расцветка в ассортименте,
368 руб
Раздел: Формата А4 и меньше
Машинка "Бибикар (Bibicar)", фиолетовая.
Детская машинка «Бибикар» станет идеальным источником не только развлечения, но и развития для любого ребёнка, которому уже исполнилось 3
2196 руб
Раздел: Каталки

97. Особенности языка и стиля английской научной прозы

98. Сниженная лексика в современном немецком языке; источники пополнения и особенности функционирования в молодежном сленге

99. Структурно - семантические особеннности спортивной фразеологии современного английского языка


Поиск Рефератов на сайте za4eti.ru Вы студент, и у Вас нет времени на выполнение письменных работ (рефератов, курсовых и дипломов)? Мы сможем Вам в этом помочь. Возможно, Вам подойдет что-то из ПЕРЕЧНЯ ПРЕДМЕТОВ И ДИСЦИПЛИН, ПО КОТОРЫМ ВЫПОЛНЯЮТСЯ РЕФЕРАТЫ, КУРСОВЫЕ И ДИПЛОМНЫЕ РАБОТЫ. 
Вы можете поискать нужную Вам работу в КОЛЛЕКЦИИ ГОТОВЫХ РЕФЕРАТОВ, КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ, выполненных преподавателями московских ВУЗов за период более чем 10-летней работы. Эти работы Вы можете бесплатно СКАЧАТЬ.