Я пытаюсь напечатать максимальное значение int
в программе. Используя следующий код ::Печать максимальных значений INT
#include <stdio.h>
#include <limits.h>
int main(void) {
printf("%d",INT_MAX);
return 0;
}
Выход я получаю :: 2147483647
Но, когда я изменить свое printf
заявление printf("%lld",INT_MAX);
мой выход становится 577732524332023807
. INT_MAX
Значение должно находиться в диапазоне long long int
, то почему он не в состоянии преобразовать INT_MAX
в правильный номер в long long int
.
Благодарим за любую помощь заранее.
Большое вам спасибо .. :) и сэр еще одна вещь - 'long int' и' int' одинаково ?? потому что я пытаюсь напечатать 'printf ("% ld ", LONG_MAX) ;, но он дает тот же результат, что и' printf ("% d", INT_MAX); 'но он дает тот же результат .. любая причина ?? : \ – user007
http://stackoverflow.com/questions/589575/what-does-the-c-standard-state-the-size-of-int-long-type-to-be –
@ user007: Мы говорим, что такие поведение определяется реализацией. Попробуйте сравнить 'sizeof (int)' и 'sizeof (long)'. Они должны иметь одинаковые значения (в байтах) для вашего компилятора, но в стандарте C только сказано, что 'sizeof (int) <= sizeof (long int)' и требует, чтобы 'int' составлял не менее 2 байтов, а' long int 'не менее 4 байтов. –