Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

C - Tipos de datos

Los tipos de datos en c se refieren a un extenso sistema utilizado para declarar variables o funciones de diferentes tipos. El tipo de una variable determina cuánto espacio ocupa en el almacenamiento y cómo se interpreta el patrón de bits almacenado.

Los tipos en C se pueden clasificar de la siguiente manera −

Sr.No. Tipos y descripción
1

Tipos básicos

Son tipos aritméticos y se clasifican además en:(a) tipos enteros y (b) tipos de punto flotante.

2

Tipos enumerados

De nuevo son tipos aritméticos y se usan para definir variables que solo pueden asignar ciertos valores enteros discretos a lo largo del programa.

3

El tipo vacío

El especificador de tipo void indica que no hay ningún valor disponible.

4

Tipos derivados

Incluyen (a) tipos de puntero, (b) tipos de matriz, (c) tipos de estructura, (d) tipos de unión y (e) tipos de función.

Los tipos de matriz y los tipos de estructura se denominan colectivamente como tipos agregados. El tipo de una función especifica el tipo del valor de retorno de la función. Veremos los tipos básicos en la siguiente sección, mientras que otros tipos se cubrirán en los próximos capítulos.

Tipos de enteros

La siguiente tabla proporciona los detalles de los tipos de enteros estándar con sus tamaños de almacenamiento y rangos de valores −

Tipo Tamaño de almacenamiento Rango de valores
caracter 1 byte -128 a 127 o 0 a 255
caracter sin firmar 1 byte 0 a 255
caracter firmado 1 byte -128 a 127
int 2 o 4 bytes -32 768 a 32 767 o -2 147 483 648 a 2 147 483 647
int sin firmar 2 o 4 bytes 0 a 65 535 o 0 a 4 294 967 295
corto 2 bytes -32.768 a 32.767
corto sin firmar 2 bytes 0 a 65 535
largo 8 bytes o (4 bytes para SO de 32 bits) -9223372036854775808 al 9223372036854775807
largo sin firmar 8 bytes 0 a 18446744073709551615

Para obtener el tamaño exacto de un tipo o una variable en una plataforma en particular, puede usar sizeof operador. Las expresiones tamaño(tipo) produce el tamaño de almacenamiento del objeto o tipo en bytes. A continuación, se muestra un ejemplo para obtener el tamaño de varios tipos en una máquina utilizando diferentes constantes definidas en el archivo de encabezado limits.h −

Demostración en vivo
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>

int main(int argc, char** argv) {

    printf("CHAR_BIT    :   %d\n", CHAR_BIT);
    printf("CHAR_MAX    :   %d\n", CHAR_MAX);
    printf("CHAR_MIN    :   %d\n", CHAR_MIN);
    printf("INT_MAX     :   %d\n", INT_MAX);
    printf("INT_MIN     :   %d\n", INT_MIN);
    printf("LONG_MAX    :   %ld\n", (long) LONG_MAX);
    printf("LONG_MIN    :   %ld\n", (long) LONG_MIN);
    printf("SCHAR_MAX   :   %d\n", SCHAR_MAX);
    printf("SCHAR_MIN   :   %d\n", SCHAR_MIN);
    printf("SHRT_MAX    :   %d\n", SHRT_MAX);
    printf("SHRT_MIN    :   %d\n", SHRT_MIN);
    printf("UCHAR_MAX   :   %d\n", UCHAR_MAX);
    printf("UINT_MAX    :   %u\n", (unsigned int) UINT_MAX);
    printf("ULONG_MAX   :   %lu\n", (unsigned long) ULONG_MAX);
    printf("USHRT_MAX   :   %d\n", (unsigned short) USHRT_MAX);

    return 0;
}

Cuando compila y ejecuta el programa anterior, produce el siguiente resultado en Linux −

CHAR_BIT    :   8
CHAR_MAX    :   127
CHAR_MIN    :   -128
INT_MAX     :   2147483647
INT_MIN     :   -2147483648
LONG_MAX    :   9223372036854775807
LONG_MIN    :   -9223372036854775808
SCHAR_MAX   :   127
SCHAR_MIN   :   -128
SHRT_MAX    :   32767
SHRT_MIN    :   -32768
UCHAR_MAX   :   255
UINT_MAX    :   4294967295
ULONG_MAX   :   18446744073709551615
USHRT_MAX   :   65535

Tipos de punto flotante

La siguiente tabla proporciona los detalles de los tipos de punto flotante estándar con tamaños de almacenamiento y rangos de valores y su precisión −

Tipo Tamaño de almacenamiento Rango de valores Precisión
flotar 4 bytes 1.2E-38 a 3.4E+38 6 decimales
doble 8 bytes 2.3E-308 a 1.7E+308 15 decimales
doble largo 10 bytes 3.4E-4932 a 1.1E+4932 19 decimales

El archivo de encabezado float.h define macros que le permiten usar estos valores y otros detalles sobre la representación binaria de números reales en sus programas. El siguiente ejemplo imprime el espacio de almacenamiento ocupado por un tipo flotante y sus valores de rango −

Demostración en vivo
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>

int main(int argc, char** argv) {

    printf("Storage size for float : %d \n", sizeof(float));
    printf("FLT_MAX     :   %g\n", (float) FLT_MAX);
    printf("FLT_MIN     :   %g\n", (float) FLT_MIN);
    printf("-FLT_MAX    :   %g\n", (float) -FLT_MAX);
    printf("-FLT_MIN    :   %g\n", (float) -FLT_MIN);
    printf("DBL_MAX     :   %g\n", (double) DBL_MAX);
    printf("DBL_MIN     :   %g\n", (double) DBL_MIN);
    printf("-DBL_MAX     :  %g\n", (double) -DBL_MAX);
    printf("Precision value: %d\n", FLT_DIG );

    return 0;
}

Cuando compila y ejecuta el programa anterior, produce el siguiente resultado en Linux −

Storage size for float : 4 
FLT_MAX      :   3.40282e+38
FLT_MIN      :   1.17549e-38
-FLT_MAX     :   -3.40282e+38
-FLT_MIN     :   -1.17549e-38
DBL_MAX      :   1.79769e+308
DBL_MIN      :   2.22507e-308
-DBL_MAX     :  -1.79769e+308
Precision value: 6

El tipo vacío

El tipo void especifica que no hay ningún valor disponible. Se utiliza en tres tipos de situaciones −

Sr.No. Tipos y descripción
1

La función regresa como nula

Hay varias funciones en C que no devuelven ningún valor o puede decir que devuelven vacío. Una función sin valor de retorno tiene el tipo de retorno como nulo. Por ejemplo, salida nula (estado int);

2

Argumentos de función como vacío

Hay varias funciones en C que no aceptan ningún parámetro. Una función sin parámetro puede aceptar un vacío. Por ejemplo, int rand(void);

3

Indicadores para anular

Un puntero de tipo void * representa la dirección de un objeto, pero no su tipo. Por ejemplo, una función de asignación de memoria void *malloc( size_t size ); devuelve un puntero a void que se puede convertir a cualquier tipo de datos.


Lenguaje C

  1. Tipos de cambio
  2. Variables de C# y tipos de datos (primitivos)
  3. Tipos de datos de C++
  4. Tipos de datos C
  5. Tipos de datos de Python
  6. Tipos de datos Java (primitivos)
  7. C Variable, tipos de datos, constantes
  8. 5 tipos diferentes de centros de datos [con ejemplos]
  9. 8 tipos diferentes de computación en la nube en 2021
  10. 8 tipos diferentes de violaciones de datos con ejemplos
  11. Abstracción de datos en C++