Здравствуйте, NordWest, Вы писали: NW>Здравствуйте, gegMOPO4, Вы писали: MOP>>И зачем было переходить с 16 на 32 бита? Зачем увеличивать размер int-а до 32 бит? Это ведь так неудобно, сразу куча кривых программ перестало правильно компилироваться. NW>Т.е. переход на другую разрядность плох только для "кривых" программ? А в правильной, по-вашему, программе нужно явно указывать разрядность переменной, если это важно для того же считывания, а не полагаться на то значение байтов, которое должно в ней содержаться по определению?
В правильной программе для бинарного ввода/вывода нужно явно указывать размер целых (и не забывать о порядке байт, представлении отрицательных) и полагаться на это определение. А не додумывать что-то о текущих предпочтениях компилятора.
Здравствуйте, _nn_, Вы писали:
__>Я вас не понимаю. __>Вы хотите писать short а получить int16_t ? __>А как тогда определен int16_t ?
__>Не нужно тут хаков. Пишите легкосопровождаемый код.
Нет, ну я то хочу объясниться с компилятором. Сказать ему, что short не то, что он там себе желает выдумать, а именно 16-битовое знаковое int16_t. Если уж он где то определен правильно, то пусть и под short'ом понимается то же самое.
Здравствуйте, achp, Вы писали:
A>Разрядность — это и есть то самое определение. Просто надо понимать, что в мире программирования логически есть две линейки типов: одна с фиксированными размерами и с определённым порядком байтов, обеспечивающая общение с внешним миром (файлы, сетевые протоколы), и одна с заданными машинной архитектурой размерами и порядком байтов, обеспечивающая оптимальное использование вычислительных ресурсов.
Вот спасибо за интересное замечание. Мне как раз таких вот фундаментальных представлений не хватает. Я практик, так сказать.
Здравствуйте, NordWest, Вы писали:
NW>Здравствуйте, _nn_, Вы писали:
__>>Я вас не понимаю. __>>Вы хотите писать short а получить int16_t ? __>>А как тогда определен int16_t ?
__>>Не нужно тут хаков. Пишите легкосопровождаемый код.
NW>Нет, ну я то хочу объясниться с компилятором. Сказать ему, что short не то, что он там себе желает выдумать, а именно 16-битовое знаковое int16_t. Если уж он где то определен правильно, то пусть и под short'ом понимается то же самое.
А вот так делать не стоит.
Если вам нужны конкретны типы пользуйтесь ***_t.
А общие оставьте на совести компилятора.
Вы ведь не хотите фиксированного size_t, так и другие типы пусть будут нефиксированными.
Здравствуйте, NordWest, Вы писали:
NW>Вот спасибо за интересное замечание. Мне как раз таких вот фундаментальных представлений не хватает. Я практик, так сказать.
Это как раз тот случай, когда практика без теории слепа.