Рубрики

sizeof () для плавающей константы в C

В языке Си у нас есть три плавающих типа данных: float , double и long double . И точный размер каждого из этих трех типов зависит от реализации / платформы компилятора C. Следующая программа может быть использована для определения размера каждого плавающего типа данных на вашем компьютере.

#include "stdio.h"

int main()

{

 printf("%d %d %d",sizeof(float), sizeof(double), sizeof(long double));

 return 0;

}

Но как насчет размера константы с плавающей точкой (например, 31,4 или 2,718)? Например, если у нас есть макрос PI, определенный следующим образом, каков будет размер (3.14).

#define PI 3.14

Теперь, если мы сделаем sizeof (PI) , каков будет его размер? Это равно sizeof (float) ? Или это также зависит от реализации компилятора. Что касается плавающих констант, стандарт C (C11, то есть ISO / IEC 9899: 2011) дал руководство. Согласно пункту 6.4.4.2 C11, « нефиксированная плавающая константа имеет тип double. Если к букве f или F добавляется суффикс, он имеет тип float. Если добавляется буква l или L, он имеет тип long double. «

Это означает, что тип плавающей константы такой же, как у типа данных double . Таким образом, если размер double на машине равен 8 байтов, размер плавающей константы будет 8 байтов. Это можно узнать с помощью программы ниже

#include "stdio.h"
#define PI 3.14

int main()

{

 printf("%d",sizeof(PI));

 return 0;

}

Согласно вышеупомянутому стандартному предложению C, плавающая константа может быть преобразована в тип с плавающей запятой с использованием f или F. Аналогично, плавающая константа может быть преобразована в long double с помощью l или L. Так что не нужно много думать о угадав вывод следующего:

#include "stdio.h"

int main()

{

 printf("%d %d",sizeof(3.14F), sizeof(3.14L));

 return 0;

}

Пожалуйста, сделайте Like / Tweet / G + 1, если вы найдете вышеупомянутое полезным. Кроме того, пожалуйста, оставьте нам комментарий для дальнейшего разъяснения или информации. Мы будем рады помочь и научиться 🙂

Рекомендуемые посты:

sizeof () для плавающей константы в C

0.00 (0%) 0 votes