Язык программирования С, лабораторная работа 1.
Макроопределения

Задания

Решить задачи ЛР№2 предыдущего семестра. Вместо функций следует создавать и применять макроопределения. Существуют ситуации, когда макроопределение невозможно определить в виде функции, например тогда, когда оно должно в себя включать инструкции языка C, не возвращающие результат (циклы, ветвления и т.п.). В таком случае макроопределение следует создавать в процедурном стиле, возвращая результат в одном из его параметров.

Пример макроопределения получения максимального из двух значений в функциональном стиле:

#define max(A, B) ((A) > (B) ? (A) : (B))
Использование:
printf("%d\n",max(10, 20));

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

#define max(A, B, RESULT) { if ((A) > (B)) RESULT=(A); else RESULT=(B); }
Использование:
float res;
max(10.2,9.8,res);
printf("%f\n",res);