Директива #define позволяет вводить в текст программы константы и макроопределения.
Общая форма записи
#define идентификатор замена
Поля идентификатор и замена разделяются одним или несколькими пробелами. Директива #define указывает компилятору, что нужно подставить строку, определенную аргументом замена, вместо каждого аргумента идентификатор в исходном файле. Идентификатор не заменяется, если он находится в комментарии, в строке или как часть более длинного идентификатора.
#include <stdio.h>
#define A 3
int main(){
printf("%d + %d = %d", A, A, A+A); // 3 + 3 = 6
getchar();
return 0;
}
В зависимости от значения константы компилятор присваивает ей тот или иной тип. С помощью суффиксов можно переопределить тип константы:
§ U или u представляет целую константу в беззнаковой форме (unsigned);
§ F (или f) позволяет описать вещественную константу типа float;
§ L/span> (или l) позволяет выделить целой константе 8 байт (long int);
§ L/span> (или l) позволяет описать вещественную константу типа long double
#define A 280U // unsigned int
#define B 280LU // unsigned long int
#define C 280 // int (long int)
#define D 280L // long int
#define K 28.0 // double
#define L 28.0F // float
#define M 28.0L // long double
Вторая форма синтаксиса определяет макрос, подобный функции, с параметрами. Эта форма допускает использование необязательного списка параметров, которые должны находиться в скобках. После определения макроса каждое последующее вхождение