Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






Директиви препроцесора. Директиви визначення.

Директивами препроцесора є інструкції, записані в тексті програми на С++, і виконувані до трансляції програми. Директиви препроцесора дозволяють змінити текст програми, наприклад, замінити деякі лексеми в тексті, вставити текст з іншого файлу, заборонити трансляцію частини тексту і тому подібне. Всі директиви препроцесора починаються із знаку #. Після директив препроцесора крапка з комою не ставляться.

Одну з директив препроцесора #include, що вставляє вміст деякого файлу під час компіляції, ми вивчали.

Директива #define служить для заміни констант, що часто використовуються, ключових слів, операторів або виразів деякими ідентифікаторами. Ідентифікатори, замінюючі текстові або числові константи, називають іменованими константами. Ідентифікатори, замінюючі фрагменти програм, називають макроозначеннями, причому макроозначення можуть мати аргументи.

Директива #define має дві синтаксичні форми:

#define ідентифікатор текст

#define ідентифікатор (список параметрів) текст

Ця директива замінює всі подальші входження ідентифікатора на текст. Такий процес називається макропідстановкою. Текст може бути будь-яким фрагментом програми на С++, а також може бути і відсутнім. У останньому випадку всі екземпляри ідентифікатора видаляються з програми.

Приклад:

#define WIDTH 80

#define LENGTH (Width+10)

Ці директиви змінять в тексті програми кожне слово WIDTH на число 80, а кожне слово LENGTH на вираз (80+10) разом з дужками, що оточують його.

Дужки, що містяться в макроозначенні, дозволяють уникнути непорозумінь, пов'язаних з порядком обчислення операцій.

Приклад, за відсутності дужок вираз t=length*7 буде перетворений у вираз t=80+10*7, а не у вираз t=(80+10)*7, як це виходить за наявності дужок, і в результаті вийде 780, а не 630.

У другій синтаксичній формі в директиві #define є список формальних параметрів, який може містити один або декілька ідентифікаторів, розділених комами. Формальні параметри в тексті макроозначення відзначають позиції на яких повинні бути підставлені фактичні аргументи макровиклику. Кожен формальний параметр може з'явитися в тексті макроозначення кілька разів.

При макровиклику услід за ідентифікатором записується список фактичних аргументів, кількість яких повинна співпадати з кількістю формальних параметрів.

Оскільки препроцесор не є частиною компілятора мови С++, а представляє відносно простий макрогенератор, є можливість перевизначати різні синтаксичні одиниці мови-лексеми (тобто ідентифікатори, ключові слова, константи, ланцюжки літер, знаки операцій і знаки пунктуацій).

Приклад:

#define MAX(x,y) ((x)>(y))?(x):(y)

Ця директива замінить фрагмент t=MAX(i,s[i]);

на фрагмент t=((i)>(s[i])?(i):(s[i]);

Приклад:

#include <iostream.h>

#define then

#define begin {

#define end }

main()

begin

int n,x,y,k=0;

cout<<"введи n\n";

cin>>n;

for(x=-n;x<=n;x++)

for(y=-n;y<=n;y++)

if(2*y-x*x==4)then

begin

k=k+1;

cout<<”x=”<<x<<”y=\n"<<y;

end

if(k==0) then

cout<<"коренів нема\n ";

end

 


Читайте також:

  1. Визначення.
  2. Визначення. Матриці, отримані в результаті елементарного перетворення, називаються еквівалентними.
  3. Визначення. Точка О називається полюсом, а промінь l – полярною віссю.
  4. Визначення. Точки максимуму й мінімуму функції називаються точками екстремуму.
  5. Визначення. Числа й називаються комплексно спряженими.
  6. Визначення. Якщо кожному натуральному числу n поставлено у відповідність число хn, то говорять, що задано послідовність
  7. Грошові кошти: їх економічна сутність та визначення.
  8. Дайте визначення.
  9. Дайте визначення.
  10. Директиви ЄС і конвенції МОП з охорони праці. Міжнародне співробітництво в галузі охорони праці
  11. Директиви ЄС про ергономічні вимоги




Переглядів: 722

<== попередня сторінка | наступна сторінка ==>
Оператор continue. | Директива #undef.

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.006 сек.