Autor: Marcin Witek (wit_at_zeus.polsl.gliwice.pl)
Data: Thu 20 Mar 2003 - 21:14:42 MET
Marcin Lewandowski <m_l_at_remove.op.pl> wrote:
: Nie mam akurat linuksa pod ręką, ale weź sprawdź kompilację zgodną z
: ansi czy jakoś tak. Daję sobie ***[1] obciąć, że na samym początku w C
: char był tyle co int. Zmienili to w C++ oraz w standardowych
: ustawieniach gcc.
Z ksiazki Briana Kernighana i Dennisa Ritchie (ci panowie "stworzyli"
jezyk C):
"char - jeden bajt, zdolny pomiescic jeden znak z lokalnego zestawu znakow"
Typ char oczywiscie zalezy od maszyny, jak pisza w tej ksiazce na
komputerze Honeywell 6000 mial 9 bitow, czyli nie byl bajtem.
A ansi to bylo duzo, duzo pozniej :)
Natomiast o ile pamietam wymagania sa takie:
sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long)
Czyli jest mozliwa sytuacja w ktorej char ma wielkosc inta, ale to ma sens
chyba tylko na komputerach 8 bitowych na ktorych, w dodatku, ktos nie zrobil
od razu inta 16 bitowego.
: P.S. Chociaż bardzo możliwe, że już w gcc tego nie ma. Kiedyś było na pewno.
Moze na jakas "specjalna" kompilacje gcc trafiles?
Wit
To archiwum zostało wygenerowane przez hypermail 2.1.7 : Wed 19 May 2004 - 09:42:09 MET DST