¿Rango en int, corto y otros tipos de datos en C en mi procesador?

Estaba leyendo un viejo libro C y de acuerdo a eso

Int valores de rango de -32768 a +32767.

donde, como mi máquina puede contener un int más grande que ese límite, ¿cómo puedo encontrar el rango de estos tipos de datos (corto, int, largo, doble, flotante) específicos para mi máquina?

¿Hay algún método para eso?

De esto , eche un vistazo a la nota a pie de página:

  • el valor real depende del sistema particular y la implementación de la biblioteca, pero reflejará los límites de estos tipos en la plataforma de destino.

Si ejecuta el siguiente código en su sistema, debería arrojar cierta información, ya que el valor devuelto puede diferir o no de los del enlace anterior.

#include  #include  #include  int main() { printf("\t\tUsing  library definitions...\n"); printf("CHAR\n"); printf("signed char max: %d\n", SCHAR_MAX); printf("unsigned char max: %u\n", UCHAR_MAX); // Note use of u, formatting output printf("signed char min: %d\n", SCHAR_MIN); printf("SHORT\n"); printf("signed short min: %d\n", SHRT_MIN); printf("signed short max: %d\n", SHRT_MAX); printf("unsigned short max: %d\n", USHRT_MAX); printf("INT\n"); printf("signed int max: %d\n", INT_MAX); printf("unsigned int max: %u\n", UINT_MAX); printf("signed int min: %d\n", INT_MIN); printf("LONG\n"); printf("signed long max: %d\n", LONG_MAX); printf("unsigned long max: %u\n", ULONG_MAX); printf("signed long min: %d\n", LONG_MIN); printf("FLOAT\n"); printf("signed float max: %e\n", FLT_MAX); printf("signed float min: %e\n", FLT_MIN); printf("DOUBLE\n"); printf("signed double max: %e\n", DBL_MAX); printf("signed double min: %e\n", DBL_MIN); return 0; } 

Espero haber entendido tu pregunta correctamente.

Puede echar un vistazo a limits.h , donde puede encontrar los tamaños de los tipos integrales. Echa un vistazo aquí .

Este encabezado define constantes con los límites de tipos integrales fundamentales para el sistema específico y la implementación del comstackdor utilizados.

El encabezado proporciona estas informaciones, mientras que permite especificar enteros de ancho específico:

 INT_MAX INT_MIN int32_t value; // to have an integer of exactly 32 bits