диапазон по int, короткий и другие типы данных в C на моем процессоре?

Я читал старую книгу С и, согласно этому

int range от -32768 до +32767.

где, когда моя машина может удерживать больше int, чем этот предел, как я могу найти диапазон этих типов данных (короткий, int, long, double, float), специфичный для моей машины?

есть ли какие-либо методы для этого?

    Из этого взгляните на сноску:

    • фактическое значение зависит от конкретной системы и реализации библиотеки, но должно отражать пределы этих типов на целевой платформе.

    Если вы запустите следующий код в своей системе, он должен пролить некоторое понимание, потому что возвращаемое значение может отличаться от тех, что указаны в приведенной выше ссылке.

    #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; } 

    Надеюсь, я правильно понял ваш вопрос.

    Вы можете взглянуть на limits.h , где вы можете найти размеры интегральных типов. Взгляните сюда .

    Этот заголовок определяет константы с пределами фундаментальных интегральных типов для конкретной системы и используемой реализации компилятора.

    Заголовок предоставляет эти данные, а позволяет указать конкретные целые числа ширины:

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