#define PRINT(format,x) printf("x = %format\n",x) - C (СИ)
Формулировка задачи:
#include <stdio.h>
#include <limits.h>
#define PRINT(format,x) printf("x = %format\n",x)
int integer = 5;
char character = '5';
char *string = "5";
void main()
{
PRINT(d,string); PRINT(d,character); PRINT(d,integer);
PRINT(s,string); PRINT(c,character); PRINT(c,integer=53);
PRINT(d,( '5'>5 ));
{
int sx=-8;
unsigned ux=-8;
PRINT(o,sx); PRINT(o,ux);
PRINT(o,sx>>3); PRINT(o,ux>>3);
PRINT(d,sx>>3); PRINT(d,ux>>3);
}
}#define PRINT(format,x) printf("x = %format\n",x)Решение задачи: «#define PRINT(format,x) printf("x = %format\n",x)»
textual
Листинг программы
#include <stdio.h>
#include <limits.h>
#define PRINT(format,x) printf("x = %" #format "\n",x)
int integer = 5;
char character = '5';
char *string = "5";
int main()
{
PRINT(d,string); PRINT(d,character); PRINT(d,integer);
PRINT(s,string); PRINT(c,character); PRINT(c,integer=53);
PRINT(d,( '5'>5 ));
{
int sx=-8;
unsigned ux=-8;
PRINT(o,sx); PRINT(o,ux);
PRINT(o,sx>>3); PRINT(o,ux>>3);
PRINT(d,sx>>3); PRINT(d,ux>>3);
}
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы:
и . - Определяется макрос PRINT, который принимает два аргумента: формат и значение.
- Форматированная строкаprintf используется для вывода значения с указанным форматом.
- В основной функции main() происходит вызов макроса PRINT с различными аргументами.
- Значение переменной string выводится как десятичное число.
- Значение переменной character выводится как десятичное число.
- Значение переменной integer выводится как десятичное число.
- Значение переменной string выводится как символьная строка.
- Значение переменной character выводится как символьная строка.
- Значение переменной integer выводится как символьная строка.
- Выводится знак '5' как десятичное число.
- Переменной integer присваивается новое значение 53.
- Выводится новое значение переменной integer как десятичное число.
- В блоке кода вычисляется значение выражения '5'>5 и выводится как десятичное число.
- В блоке кода определяются переменные sx и ux со значениями -8.
- Значение переменной sx выводится как восьмеричное число.
- Значение переменной ux выводится как восьмеричное число.
- Значение переменной sx>>3 выводится как восьмеричное число.
- Значение переменной ux>>3 выводится как восьмеричное число.
- Значение переменной sx>>3 выводится как десятичное число.
- Значение переменной ux>>3 выводится как десятичное число.