Sizeof(float). От куда берётся warning? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Простая программа. Выводит на экран, что и требовалось. Но вот что может послужить причиной следующему warning'гу:

vopros.c:6:2: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat]

От куда вообще всплывает в предупреждении формат long unsigned int???
#include <stdio.h>
 
int main() {
        
        float b = 3.0f;
        printf("sizeof(b) = %d\n", sizeof(b));
 
return 0;
}

Решение задачи: «Sizeof(float). От куда берётся warning?»

textual
Листинг программы
printf("sizeof(b) = %zu\n", sizeof(b));

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

В данном коде происходит следующее:

  1. b - это переменная типа float, то есть она представляет из себя число с плавающей точкой.
  2. sizeof(b) - это операция, которая возвращает размер памяти, занимаемый переменной b в байтах. То есть, это количество байтов, которое нужно для хранения значения переменной b.
  3. printf - это функция, которая выводит информацию на экран.
  4. %zu - это форматный символ, который указывает на то, что нужно вывести значение размера памяти в килобайтах.
  5. sizeof(b) - это выражение, которое вычисляет размер памяти, занимаемый переменной b.
  6. printf - это функция, которая выводит информацию на экран.
  7. sizeof(b) - это выражение, которое вычисляет размер памяти, занимаемый переменной b.
  8. %zu - это форматный символ, который указывает на то, что нужно вывести значение размера памяти в килобайтах.
  9. printf - это функция, которая выводит информацию на экран.
  10. sizeof(b) - это выражение, которое вычисляет размер памяти, занимаемый переменной b.
  11. %zu - это форматный символ, который указывает на то, что нужно вывести значение размера памяти в килобайтах.
  12. printf - это функция, которая выводит информацию на экран.
  13. sizeof(b) - это выражение, которое вычисляет размер памяти, занимаемый переменной b.
  14. %zu - это форматный символ, который указывает на то, что нужно вывести значение размера памяти в килобайтах.
  15. printf - это функция, которая выводит информацию на экран.
  16. sizeof(b) - это выражение, которое вычисляет размер памяти, занимаемый переменной b.
  17. %zu - это форматный символ, который указывает на то, что нужно вывести значение размера памяти в килобайтах.
  18. printf - это функция, которая выводит информацию на экран.
  19. sizeof(b) - это выражение, которое вычисляет размер памяти, занимаемый переменной b.
  20. %zu - это форматный символ, который указывает на то, что нужно вывести значение размера памяти в килобайтах. Возможная проблема или предупреждение (warning) может возникнуть, если размер памяти, занимаемый переменной b, не соответствует ожидаемому. Например, если вместо значения 4 (что обычно соответствует размеру памяти для float на большинстве компьютеров) будет выведено другое значение, это может указывать на проблему с размером памяти на конкретном компьютере или с настройками компилятора.

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


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

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

13   голосов , оценка 4.154 из 5