[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: amd 64



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 debian-russian-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> 



Reply to: