Cytat(Turgon @ 16.06.2007, 22:28:37 )

http://pl.wikipedia.org/wiki/Problem_roku_2038Jabol... Czytaj wikipedię! Z resztą zwiększenie z 32 bitów do 64 bitów rozmiar da na pewno większą wydajność, przy mniejszym taktowaniu.
WTF ze znakiem? Kogoś chyba bolała głowa... Chyba, że to wymyślili jeszcze przed 1.1.1970
A tak swoją drogą nie widzę powodu aby samo zwiększenie długości słowa miało dać zwiększenie wydajności
A wracając do tematu: dzięki za odpowiedzi! dochodzę do wniosku, że wygląda na to, że jednak było warto. Co do większej ilości rozkazów to można również więcej rozkazów na 32-bitowcach zaimplementować, to nie kwestia wielkości słowa, a raczej tego, czy kompilator będzie umiał ich użyć (dlatego winy to shit, bo nie używają zupełnie rozszerzeń optymalizacyjnych specyficznych dla danego modelu procesora! a jedynie tylko standardowych operacji i686! chyba, że znają jakąś strasznie sprytną sztuczkę, żeby to obejść?). W każdym razie skoro te aplikacje są wydajniejsze to świetnie. Jednak nie były to wyrzucone pięniądze.
Jedyne co mnie irytuje to to, że muszę działać na systemie w profilu multilib, bo inaczje połowa aplikacji by mi nie działa (na windowsach też by nie działały, nie łudźcie się. jeżeli Wam 32-bitowe aplikacje działają to znaczy, że Wasz win to multilib!). Teraz rozumiem, czemu wszyscy tak swojego czasu jechali win 95 i 98 (pamiętam te czasy, tylko wtedy jeszcze nie wiedziałem o co chodzi).
Inna sprawa, że w 64 bitowych maszynach int ma 4 bajty. long ma dla odmiany 8 bajtów oraz pointer. A long long to po prostu long (tutaj na pewno jest przyśpieszenie). Czy to znaczy też szybsze działania zmiennoprzecinkowe? Tutaj małe podsumowanie.
Kod
sizeof(void *)=8
sizeof(char)=1
sizeof(short)=2
sizeof(int)=4
sizeof(long)=8
sizeof(long long)=8
sizeof(float)=4
sizeof(double)=8
sizeof(long double)=16
Mógły ktoś na 32-bitowcu odpalić?
Kod
#include<stdio.h>
int main(void)
{
printf("sizeof(%s)=%d\n", "void *", (int)sizeof(void *));
printf("sizeof(%s)=%d\n", "char", (int)sizeof(char));
printf("sizeof(%s)=%d\n", "short", (int)sizeof(short));
printf("sizeof(%s)=%d\n", "int", (int)sizeof(int));
printf("sizeof(%s)=%d\n", "long", (int)sizeof(long));
printf("sizeof(%s)=%d\n", "long long", (int)sizeof(long long));
printf("sizeof(%s)=%d\n", "float", (int)sizeof(float));
printf("sizeof(%s)=%d\n", "double", (int)sizeof(double));
printf("sizeof(%s)=%d\n", "long double", (int)sizeof(long double));
return 0;
}