Re[9]: Разница в чтении файла в i386 и amd64
От: _nn_ www.nemerleweb.com
Дата: 07.07.11 11:15
Оценка:
Здравствуйте, NordWest, Вы писали:

NW>Нет, я вот так хотел:


NW>
NW>typedef unsigned short uint16_t;
NW>typedef unsigned long uint32_t;
NW>typedef short int16_t;
NW>typedef long int32_t;
NW>


NW>Но увы. Хотя может быть порядок не тот. Мне нужно, чтобы все переменные short, например, понимались как int16_t.



Я вас не понимаю.
Вы хотите писать short а получить int16_t ?
А как тогда определен int16_t ?

Не нужно тут хаков. Пишите легкосопровождаемый код.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[5]: Разница в чтении файла в i386 и amd64
От: gegMOPO4  
Дата: 07.07.11 11:16
Оценка:
Здравствуйте, NordWest, Вы писали:
NW>Здравствуйте, gegMOPO4, Вы писали:
MOP>>И зачем было переходить с 16 на 32 бита? Зачем увеличивать размер int-а до 32 бит? Это ведь так неудобно, сразу куча кривых программ перестало правильно компилироваться.
NW>Т.е. переход на другую разрядность плох только для "кривых" программ? А в правильной, по-вашему, программе нужно явно указывать разрядность переменной, если это важно для того же считывания, а не полагаться на то значение байтов, которое должно в ней содержаться по определению?

В правильной программе для бинарного ввода/вывода нужно явно указывать размер целых (и не забывать о порядке байт, представлении отрицательных) и полагаться на это определение. А не додумывать что-то о текущих предпочтениях компилятора.
Re[10]: Разница в чтении файла в i386 и amd64
От: NordWest Россия  
Дата: 07.07.11 15:30
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Я вас не понимаю.

__>Вы хотите писать short а получить int16_t ?
__>А как тогда определен int16_t ?

__>Не нужно тут хаков. Пишите легкосопровождаемый код.


Нет, ну я то хочу объясниться с компилятором. Сказать ему, что short не то, что он там себе желает выдумать, а именно 16-битовое знаковое int16_t. Если уж он где то определен правильно, то пусть и под short'ом понимается то же самое.
Re[6]: Разница в чтении файла в i386 и amd64
От: NordWest Россия  
Дата: 07.07.11 15:32
Оценка:
Здравствуйте, achp, Вы писали:

A>Разрядность — это и есть то самое определение. Просто надо понимать, что в мире программирования логически есть две линейки типов: одна с фиксированными размерами и с определённым порядком байтов, обеспечивающая общение с внешним миром (файлы, сетевые протоколы), и одна с заданными машинной архитектурой размерами и порядком байтов, обеспечивающая оптимальное использование вычислительных ресурсов.


Вот спасибо за интересное замечание. Мне как раз таких вот фундаментальных представлений не хватает. Я практик, так сказать.
Re[11]: Разница в чтении файла в i386 и amd64
От: _nn_ www.nemerleweb.com
Дата: 07.07.11 15:43
Оценка:
Здравствуйте, NordWest, Вы писали:

NW>Здравствуйте, _nn_, Вы писали:


__>>Я вас не понимаю.

__>>Вы хотите писать short а получить int16_t ?
__>>А как тогда определен int16_t ?

__>>Не нужно тут хаков. Пишите легкосопровождаемый код.


NW>Нет, ну я то хочу объясниться с компилятором. Сказать ему, что short не то, что он там себе желает выдумать, а именно 16-битовое знаковое int16_t. Если уж он где то определен правильно, то пусть и под short'ом понимается то же самое.


А вот так делать не стоит.
Если вам нужны конкретны типы пользуйтесь ***_t.
А общие оставьте на совести компилятора.

Вы ведь не хотите фиксированного size_t, так и другие типы пусть будут нефиксированными.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[7]: Разница в чтении файла в i386 и amd64
От: achp  
Дата: 08.07.11 10:24
Оценка:
Здравствуйте, NordWest, Вы писали:

NW>Вот спасибо за интересное замечание. Мне как раз таких вот фундаментальных представлений не хватает. Я практик, так сказать.


Это как раз тот случай, когда практика без теории слепа.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.