Autor
|
Tema: ¿ANSI C define almacenamiento minimo para los tipos de datos predefinidos? (Leído 4,865 veces)
|
do-while
Desconectado
Mensajes: 1.276
¿Habra que sacarla de paseo?
|
¡Buenas! Nunnca he tenido en mis manos el texto de la especificicacion de C del comite ANSI que lo estandarizo (tampoco el ISO), pero tenia entendido (posiblemente de forma erronea) que existia la siguiente correspondencia: char -> 1byte short-> 2 bytes long -> 4 bytes
Y sobre numeros de coma flotante... lo mismo, no tengo ni idea. La cuestion esta en que acabo de empezar un modulo para sacarle rendimiento a lo que se sobre programacion, y en clase nos han dicho que el estandar no define ningun tipo de rango de valores para los tipos de datos predefinidos. Yo tenia entendido que aunque no existia una definicion de maximo para cada tipo de dato, si existia una cantidad minima de bytes establecida para cada tipo. Lo unico que he encontrado es una referencia rapida de una sola oja, que se supone que es un resumen del ANSI, en la que se especifica que char, short y long deben tener 1, 2 y 4 bytes respectivamente. ¿Alguno sabeis exactamente cual es la verdad y cual la leyenda? ¡Saludos!
|
|
|
En línea
|
- Doctor, confundo los números y los colores. - Vaya marrón. - ¿Marrón? ¡Por el culo te la hinco!
|
|
|
Akai
Desconectado
Mensajes: 823
|
Buscando en google "ANSI C Referenfe" encontré en la primera entrada (en la sección de variables) lo siguiente:
Type Size Range unsigned char 8 bits 0 to 255 char 8 bits -128 to 127 unsigned int 16 bits 0 to 65,535 short int 16 bits -32,768 to 32,767 int 16 bits -32,768 to 32,767 unsigned long 32 bits 0 to 4,294,967,295 long 32 bits -2,147,483,648 to 2,147,483,647 float 32 bits 1.17549435 * (10^-38) to 3.40282347 * (10^+38) double 64 bits 2.2250738585072014 * (10^-308) to 1.7976931348623157 * (10^+308) long double 80 bits 3.4 * (10^-4932) to 1.1 * (10^4932)
En cualquier caso, si mal no tengo entendido, la longitud de algunos tipos puede variar dependiendo de la arquitectura del procesador.
|
|
|
En línea
|
|
|
|
do-while
Desconectado
Mensajes: 1.276
¿Habra que sacarla de paseo?
|
¡Buenas! Gracias. Me habia puesto a sumar conceptos en google en lugar de ir directamente a la refencia... De todas formas, en ese texto dice que ese es el rango de valores mas comun para la mayor parte de las implementaciones, pero no dice que ese tenga que ser el rango en las implementaciones estandar. Por otra parte, menciona que short y long pueden tener, respectivamente, la mitad y el doble de almacenamiento que un entero normal, pero tambien dice que no tiene porque ser asi, y que pueden tener el mismo numero de bytes que un entero sin modificadores. Otra pregunta. La pagina que me has indicado, no figura como el texto estandar oficial, sino que parece una recopilacion de otra persona. ¿Hasta que punto es fiable al informacion referente al almacenamiento de las variables? ¡Saludos!
|
|
|
En línea
|
- Doctor, confundo los números y los colores. - Vaya marrón. - ¿Marrón? ¡Por el culo te la hinco!
|
|
|
Akai
Desconectado
Mensajes: 823
|
Estuve buscando algo más de información para contrastar, y según leí, el estandar es vago a propósito en cuanto al tamaño de las variables. Esto se debe a que según el procesador, el tamaño de estas varía. Según el procesador, un entero puede ocupar 4 bytes (32 bits) o bien 8 bytes (64 bits). La única definición al respecto es que un float no sea mayor que un double y este a su vez menor que un long double. http://en.wikipedia.org/wiki/C_variable_types_and_declarations
|
|
|
En línea
|
|
|
|
do-while
Desconectado
Mensajes: 1.276
¿Habra que sacarla de paseo?
|
¡Ok!
¡Muchas gracias por todo!
|
|
|
En línea
|
- Doctor, confundo los números y los colores. - Vaya marrón. - ¿Marrón? ¡Por el culo te la hinco!
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Práctico: Cómo funciona el almacenamiento de datos de localización del iPhone
Noticias
|
wolfbcn
|
0
|
2,441
|
30 Abril 2011, 15:57 pm
por wolfbcn
|
|
|
Programa en C. Problemas con el almacenamiento de datos en variables
Programación C/C++
|
tenji
|
4
|
4,022
|
22 Junio 2011, 17:58 pm
por tenji
|
|
|
Tipos de drivers USB para dispositivos de almacenamiento masivo.
Dispositivos Móviles (PDA's, Smartphones, Tablets)
|
cixert
|
9
|
9,888
|
28 Marzo 2015, 07:35 am
por engel lex
|
|
|
Medida de datos de almacenamiento
Programación General
|
FKT
|
7
|
2,973
|
23 Septiembre 2016, 10:14 am
por FKT
|
|
|
SII chileno define prácticas tributarias para las criptomonedas
Noticias
|
wolfbcn
|
1
|
1,088
|
6 Marzo 2018, 16:03 pm
por Serapis
|
|