ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 марта
645390 Топик полностью
Petrovich (13.01.2016 11:42, просмотров: 1) ответил IBAH на Какой стандарт!!! префиксы, платформонезависимость!!! :)
Это да, это правильно. Если НЕ ДУМАЯ читать стандарт, то в нем и префиксных операторов не заметишь, и число 2147483648 превратится в (-1) вместо (1<<31), и не влезет ни в поле int32, ни в заявленный компьютерный long64, а потребует целый long long!!! Стандарты читать надо думая. Не шашкой махать "Стандарт говорит, что 2147483648 имеет тип long long int, и точка" потому что ничего подобного он не говорил и не может говорить. А говорит он, что указанные в нем пределы Their implementation-defined values shall be equal or greater in magnitude (absolute value) to those shown, with the same sign, что в вольном пересказе с хабра значит: Cи переносимый, поэтому в нём базовые целочисленные типы (char, short, int и др.) не имеют строго установленного размера, а зависят от платформы. Однако эти типы не были бы переносимы, если бы их размеры были совершенно произвольные: стандарт устанавливает МИНИМАЛЬНЫЕ ДИАПАЗОНЫ принимаемых значений для всех базовых целочисленные типов. То есть со временем базовый int может вырасти и до int128 не нарушая стандарта.