On 2005.06.08 at 11:57:38 +0400, Dmitry Sokolov wrote: > Hello Olleg, > > Wednesday, June 8, 2005, 10:56:19 AM, you wrote: > > OS> А что тебе не нравится? short 2, int 4, long 8 - распространненые > OS> размеры для 64 битных архитектур. Также как short 2, int 2, long 4 для > OS> 16 битных и short 2, int 4, long 4 для 32 битных. > OS> Другое дело что pointer стал 8 байтным, все проги криворуких > OS> программистов которые в int'ах хранят поинтеры стали бросать коры. > > А не нравится, что традиционно (в т.ч. и по стандарту языка) short - 2 байта, > long - 4, а int - совпадает с размером указателя.
Что-то я не помню такого в стандарте. Там написано что short <= int <=long. И int - наиболее естественный для данной архитектуры размер целого. А про размер указателя ничего не сказано. > > Сами посмотрите: > 16 бит: short 2, long 4, int 2 Рассмотрим, например, такую архитектуру как 8086 (и 80286 заодно). Большая часть осмысленных программ для этой аржитектуры использует модель памяти large или huge, в которых указатель 4 байта. А в остальных моделях есть понятие far-указателя. Который тоже 4 байта. Так что про равенство указателя и int это тебе приснилось. > 32 бита: short 2, long 4, int 4 > и совершенно непонятно с какого хрена: > 64 бита: short 2, long 8, int 4???? тем более, что всегда указатель это int. > Может у меня устаревшая информация о языке? Не устаревшая. Просто в корне неверная. Никогда указатель не был int. > > > -- > To UNSUBSCRIBE, email to [EMAIL PROTECTED] > with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED] > -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]