22942

ПРЕПРОЦЕСОРНІ ЗАСОБИ

Лекция

Информатика, кибернетика и программирование

імя_директиви лексемиоперанди { лексемиоперанди } Макропідстановки: define ідентифікатор послідовність_символів Сем. define begin { define end } main begin if begin end else return 0; end На виході препроцесора цей фрагмент матиме вигляд: main { if { }else return 0; } Допускаються ланцюжки макропідстановок. ...

Русский

2013-08-04

34.5 KB

2 чел.

ТЕМА: ПРЕПРОЦЕСОРНІ ЗАСОБИ.

Препроцесор є складовою системи програмування мови Сі, до якої входять також текстовий редактор, компілятор, програма-компононвщик (редактор звязків), програма-завантажувач, програма-відлагоджувач. Препроцесор  отримує на вхід текст Сі-програми з директивами препроцесора, виконує їх і вилучає з тексту. При цьому :

спочатку «склеюються рядки », тобто рядок, що закінчується символом ‘\’ з’єднується з наступним (просто відкидається пара  символів ‘\’ та ‘\n’ !). Далі програма розбивається на лексеми,  розділені символами-роздільниками. Коментарі замінюються на один пробіл. Потім препроцесор виконує безпосередньо свої директиви. Ескейп-послідовності  в символьних константах і в рядках-літералах замінюються на відповідні значення. Сусідні рядки-літерали конкатенуються.

Директиви задають певні синтаксичні перетворення тексту програми. Вони розміщуються в окремих рядках і  розпочинаються символом ‘#’/. Зона їх дії – від   директиви  до кінця текстового файлу.

 

Синт.  

            #<ім’я_директиви>  <лексеми-операнди>{  <лексеми-операнди>}

  1.  Макропідстановки:

   #define  <ідентифікатор>  <послідовність_символів>  

Сем.:  далі в тексті всі входження даного ідентифікатора  будуть  замінені на відповідну послідовність символів.        

Нпр.,    # define  begin  {

            # define  end  }

               main()

               begin

                        if (…)  begin ………… end

                                else return 0;

                end

На виході  препроцесора  цей фрагмент матиме вигляд:

               main()

               { if(…)   { …………}else return 0;

                }

Допускаються  ланцюжки  макропідстановок.

Нпр.,    # define  МАХ  1024

            # define  RANGE  MAX-32

               main()

               {  int i;

                         i=RANGE;  ....                    

                }

            # define  RANGE  1024-32

               main()

               {  int i;

                         i=RANGE;  ....   

                 }

              main()

               {  int i;

                         i=1024-32 ...                    

                }

  1.  Макроси:

   #define  <імя_макросу>(<параметр>{, <параметр>})  <тіло-макросу>  

<параметр>::=  послідовність символів

<тіло-макросу>  ::=  послідовність символів, що містить параметри

Виклик  макросу:

<імя_макросу>(<фактичний_параметр>,…, <фактичний_параметр>)

<фактичний_параметр>::= послідовність символів

Сем.   Дія макросу полягає в заміні всіх його викликів на модифіковане тіло. Модифікація тіла полягає в заміні параметрів в ньому на їх фактичні  значення.

Нпр.,  #define MAX(X,Y)  ((X>Y)?X:Y)

            main()

               {  int i;

                         i=MAX(i, 100)  ....                    

                }

            main()

               {  int i;

                         i=((i>100)?i:100)  ....                    

                }

Область дії  директиви #define …..   обмежити

директивою #undef.  

  1.  Включення файлів:

      #include <file>     для файлу з системної бібліотеки  (#include <stdio.h> )

      #includefile”      для довільного файлу  (вказується повний шлях)

  1.  Умовна компіляція:

     #if <ціл-конст-вираз>

           … text-1 ….

      #else

           text-2 …

     #endif

Якщо значення виразу 0, то компілятор не обробляє  перший текст. У супротивному пропускається другий текст.  


 

А также другие работы, которые могут Вас заинтересовать

81332. Виконавчий збір 28.08 KB
  Виконавчий збір не стягується із страховиків які здійснюють державне обовязкове особисте страхування при виконанні державними виконавцями рішень про стягнення коштів за державним обовязковим особистим страхуванням та з осіб звільнених від його сплати згідно з законодавством а також за виконавчими документами про конфіскацію майна стягнення періодичних платежів стягнення виконавчого збору накладення арешту на майно для забезпечення позовних вимог. Постанова про стягнення виконавчого збору виноситься при першому надходженні виконавчого...
81333. Витрати на здійснення виконавчих дій та їх види 26.9 KB
  До інших витрат на організацію виконавчих дій належать витрати на виплату винагороди державним виконавцям відповідно до статті 47 Закону; придбання службових житлових приміщень; придбання службових приміщень; страхування державних виконавців; забезпечення державних виконавців форменим одягом
81334. Розподіл стягнутих з боржника грошових сум і черговість задоволення вимог стягувачів 27.72 KB
  Розподіл стягнутих державним виконавцем з боржника за виконавчим провадженням грошових сум у тому числі одержаної від реалізації майна боржника здійснюється у такому порядку: у першу чергу повертається авансовий внесок сторін та інших осіб на організацію та проведення виконавчих дій...
81335. Закінчення та відновлення виконавчого провадження 27.23 KB
  Про закінчення виконавчого провадження державний виконавець виносить постанову, яка затверджується начальником відповідного органу державної виконавчої служби. Копія постанови у триденний строк надсилається сторонам та суду або іншому органу (посадовій особі), які видали виконавчий документ, або за належністю до іншого органу державної виконавчої служби
81337. Порядок звернення стягнення на грошові кошти та інше майно боржника 28.14 KB
  Звернення стягнення на майно боржника полягає в його виявленні шляхом надіслання запитів до органів державної податкової інспекції банків дорожньої автомобільної інспекції бюро технічної інвентаризації нотаріату тощо описі арешті вилученні та примусовій реалізації. Стягнення за виконавчими документами в першу чергу звертається на кошти боржника в гривнях та іноземній валюті інші цінності в тому числі кошти на рахунках та вкладах боржника в установах банків та інших кредитних організаціях на рахунки в цінних паперах у депозитаріях...
81338. Порядок звернення стягнення на заставлене майно 27.41 KB
  Стягнення на заставлене майно в порядку примусового виконання допускається за виконавчими документами для задоволення вимог стягувача заставодержателя. За постановою державного виконавця про стягнення виконавчого збору винесеною у виконавчому провадженні про звернення стягнення на заставлене майно стягнення звертається на вільне від застави майно боржника. Крім того право заставодержателя на звернення стягнення саме на заставлене майно регулюється статтею 20 Закону України Про заставу .
81339. Порядок звернення стягнення на майно боржника,яке знаходиться в інших осіб 24.23 KB
  Державний виконавець на письмову пропозицію боржника або стягувача має право звернути стягнення на майно боржника що знаходиться в інших осіб а також на майно та кошти належні боржникові від інших осіб. Зазначені особи на запит державного виконавця зобовязані надати у визначений ним строк відомості про належне боржникові майно що знаходиться в них та майно чи кошти які вони повинні передати боржникові. Одержавши від названих осіб відомості про наявність майна боржника державний виконавець описує це майно в присутності понятих вилучає...
81340. Майно боржника, на яке не може бути звернено стягнення 26.55 KB
  Стягнення за виконавчими документами не може бути звернено на такі види майна та предмети що належать боржникові на праві власності або є його часткою у спільній власності необхідні для боржника членів його сімї та осіб які перебувають на його утриманні...