Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИИ_ПО_ПРОГРАММИРОВАНИЮ_ПРЕПОД_3403_220301.doc
Скачиваний:
27
Добавлен:
06.11.2018
Размер:
845.31 Кб
Скачать

5. Директива препроцессора # define.

Константу можно создать следующими способами:

  • /* подстановка производится во время выполнения программы*/ float taxrate; taxrate = 0 015;

  • /* подстановка производится во время компиляции (этот способ лучше)*/ #define TAXRATE 0.015.

При компиляции программы каждый раз, когда появится переменная TAXRATE, она будет заменяться величиной 0.015.

ПРИМЕЧАНИЕ.

В языке Си переменные пишутся строчными буквами taxrate. В языке Си константы пишутся прописными буквами TAXRATE. Это не правило, а традиция, которая улучшает читаемость программы.

/* ПРОГРАММА:

pizza.c – пицца (использование директивы # define).

*/

/*#############################################*/

/*============================= include */

#include<stdio.h>

/*============================= define */

#define PI 3,14159

/*============================= main() */

main()

{/*.---------------------------.begin main() */

float radius, circum, area; /* радиус, длина окружности, площадь круга */

printf("Чемy равен радиус вашей пиццы? \n");

scanf("%f", &radius); circum=2*PI*radius; area = PI * radius * radius;

printf(" Основные параметры вашей пиццы следующие: \n");

printf(" длина окружности = %1.2f, площадь =%1.2f \n circum, area);

return 0;

}/*.---------------------------.end main() */

/*#############################################*/

РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ.

Чему равен радиус вашей пиццы?

6.0

Основные параметры вашей пиццы следующие:

длина окружности = 37.70, площадь окружности = 113.40.

ПОЯСНЕНИЯ К ПРОГРАММЕ.

Использование спецификации %1.2f в операторе printf( ) приведет к тому, что при печати результаты будут округлены до двух десятичных цифр.

***************************************************************

Директиву #define можно также использовать для определения символьных и строковых констант. Необходимо использовать знак апостроф в первом случае и кавычки - во втором. Например:

#define ВЕЕР '\007'

#define SYMBOL 'S'

#deline NULL '\0'

#define PHRASE "Ну вот, вы и сделали это!"

Директиву #define можно также использовать при создании заголовочных файлов. Предположим, разрабатывается целый пакет программ, использующих один и тот же набор констант. Можно произвести следующие действия:

1. Соберите все ваши директивы #define в один файл и назовите его, например, const.h.

2. В начало каждого файла, содержащего программу, включите директиву #include "const.h."

При выполнении программы, препроцессор прочтет файл с именем const.h и использует все директивы #define.

Символ .h в конце имени файла означает, что этот файл является "заголовком" (header), т.е. в нем содержится информация, которая должна попасть в начало программы. Самому препроцессору безразлично, используете ли вы символ .h в имени файла или нет.

ПРИМЕЧАНИЕ.

Части программы, заключенные в кавычки, закрыты для подстановок. Операторы, приводимые ниже, служат иллюстрацией такого положения:

#define AS "астрологию"

printf(" Oн глубоко верил в AS.\n");

Распечатка будет выглядеть так:

Oн глубоко верил в AS.

Однако после выполнения оператора

printf(" Он глубоко верил в %s.\n" , AS);

мы получим следующий результат:

Он глубоко верил в астрологию.

В последнем случае константа с именем AS находилась вне кавычек и поэтому была заменена соответствующим значением.