#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);
 
}
}

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы: и .
  2. Определяется макрос PRINT, который принимает два аргумента: формат и значение.
  3. Форматированная строкаprintf используется для вывода значения с указанным форматом.
  4. В основной функции main() происходит вызов макроса PRINT с различными аргументами.
  5. Значение переменной string выводится как десятичное число.
  6. Значение переменной character выводится как десятичное число.
  7. Значение переменной integer выводится как десятичное число.
  8. Значение переменной string выводится как символьная строка.
  9. Значение переменной character выводится как символьная строка.
  10. Значение переменной integer выводится как символьная строка.
  11. Выводится знак '5' как десятичное число.
  12. Переменной integer присваивается новое значение 53.
  13. Выводится новое значение переменной integer как десятичное число.
  14. В блоке кода вычисляется значение выражения '5'>5 и выводится как десятичное число.
  15. В блоке кода определяются переменные sx и ux со значениями -8.
  16. Значение переменной sx выводится как восьмеричное число.
  17. Значение переменной ux выводится как восьмеричное число.
  18. Значение переменной sx>>3 выводится как восьмеричное число.
  19. Значение переменной ux>>3 выводится как восьмеричное число.
  20. Значение переменной sx>>3 выводится как десятичное число.
  21. Значение переменной ux>>3 выводится как десятичное число.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5