En lenguaje C, tenemos tres tipos de datos flotantes, es decir , float , double y long double . Y el tamaño exacto de cada uno de estos 3 tipos depende de la implementación/plataforma del compilador C. El siguiente programa se puede utilizar para averiguar el tamaño de cada tipo de datos flotantes en su máquina.
#include "stdio.h" int main() { printf("%d %d %d",sizeof(float), sizeof(double), sizeof(long double)); return 0; }
Pero, ¿qué pasa con el tamaño de una constante de punto flotante (por ejemplo, 31,4 o 2,718)? Por ejemplo, si tenemos la macro PI definida de la siguiente manera, ¿cuál sería el tamaño de (3.14).
#define IP 3.14
Ahora bien, si hacemos sizeof(PI) , ¿cuál será su tamaño? ¿Es igual a sizeof(float) ? ¿O también depende de la implementación del compilador? Bueno, para las constantes flotantes, el estándar C (C11, es decir, ISO/IEC 9899:2011) ha proporcionado una guía. Según C11 cláusula 6.4.4.2, “ Una constante flotante sin sufijo tiene tipo doble. Si tiene como sufijo la letra f o F, tiene tipo float. Si lleva como sufijo la letra l o L, tiene tipo long double. “
Significa que el tipo de una constante flotante es el mismo que el tipo de datos doble . Entonces, si el tamaño de un doble en una máquina es de 8 bytes, el tamaño de la constante flotante sería de 8 bytes. Uno puede averiguar esto usando el siguiente programa
#include "stdio.h" #define PI 3.14 int main() { printf("%d",sizeof(PI)); return 0; }
De acuerdo con la cláusula estándar C mencionada anteriormente, una constante flotante se puede convertir a tipo flotante usando f o F. De manera similar, una constante flotante se puede convertir a long double usando l o L. Por lo tanto, no debería pensar mucho en adivinando el resultado de lo siguiente:
#include "stdio.h" int main() { printf("%d %d",sizeof(3.14F), sizeof(3.14L)); return 0; }
Haga clic en Me gusta/Tweet/G+1 si encuentra útil lo anterior. Además, déjenos un comentario para obtener más aclaraciones o información. Nos encantaría ayudar y aprender 🙂
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA