|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Valentin Davydov 2:5020/400 30 Sep 2004 19:45:36 To : Lev Serebryakov Subject : Re: А что с оптеронами? -------------------------------------------------------------------------------- > From: Lev Serebryakov <Lev.Serebryakov@p1.f661.n5030.z2.fidonet.org> > Date: Wed, 29 Sep 2004 23:18:16 +0400 > > VN> Сложности связаны с любовью, например, передавать указатель в > VN> переменной типа int. При том, что на стандартной LP64 (к которым > VN> относятся все 64-битные FreeBSD) - указатель - 8 байт, а int - 4 > VN> байта. > > Hо почему?!?! Потому что int - это один тип (численный), а указатели - другой (ссылочный). У них даже допустимые операции разные. Для работы с ними в сях специальные операторы придуманы, * и &. А почему некоторые программисты этого не знают - наверное, у них спрашивать надо. >Ведь int должен быть самым естественным для железа размером. Числа int бывают как 16-разрядные, так и 32-разрядные (C) K&R. А самый естественный для x86 и далее железа размер - вообще 8 бит, как минимальная индивидуально адресуемая единица пересылки данных, наименьшее общее кратное длины различных команд и т.д. >Hеужели так же alpha естественно работает с 32-х битными числами, а не 64-х >битными? Альфа нативно умеет 32-битную целочисленную арифметику. 16-битную, кстати, тоже. Этого вполне достаточно, чтобы при целочисленных расчётах не забивать половину или 3/4 памяти данных незначащими нулями. >У нее же все регистры 64 бита... У пеньтиума ммх вообще 80-битные регистры есть, так что, обязать int тип быть 80 бит? Да и адресные регистры, вон, у каких-то интелевых поделок 36- (или 48?)битные бывают. Битность указателей - забота компилятора и только. А для битности чисел sizeof() придуман. > Мне это кажется так же нелепо, как на i386 иметь указатель в 32 бита а int >оставшимся в наследство от 286, в 16 бит. Программы надо писать нормально, не закладываясь на "очевидные" умолчания. Проведение арифметических операций над указателями (например, суммирование двух указателей) выглядит ещё более нелепо. Вал. Дав. --- ifmail v.2.15dev5.3 * Origin: St. Petersburg State University (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/44178d407dcb.html, оценка из 5, голосов 10
|