Re: Co tu jest le?

Autor: Tomasz Szcześniak (tszczesn_at_pay.com.pl)
Data: Sun 27 May 2001 - 22:30:54 MET DST


> Boli cię zmienna number !!! Zdefiniowałeś ją jako char, a %3hd wymaga wskaźnika do
> zmiennej typu int. I w momencie wczytania zawartości number (druga wartość w linii
> czytanej z pliku) starszy bajt wartości typu int przykrywa to co znalazło się
> wcześniej w zmiennej type.

liteka 'h' oznacza, że int jest typu short, a więc (AFAIR) 1 bajt. Fakt,
że zamiana deklaracji zmiennej number na typ int pomoła, dzięki :)
 
> A tak na przyszłość pozwolę sobie dać małą radę. Używaj typów zgodnych z przeznaczeniem
> zmiennej. Wbrew pozorom zastosowanie typu char do zmiennej number (a z nazwy sądząc
> jest to zmienna numeryczna) będzie cię kosztowało więcej niż zaoszczędzony bajt
> (lub 3 bajty w zależności od kompilatora) pamięci. Ciągła konwersja do typu int
> to są koszty i to duże.

Używam, ale jak muszę odczytać wartość z zakresu 0 - 255 to czemu mam
nie używać chara?
A wychowałem się na ZX Spectrum, gdzie każdy bit był na wagę złota :)
W każdym razie mam nauczkę - pilnować typów, swoją drogą, jak typy się
nie zgadzają to kompilator powinien warningiem rzucić.
W każdym razie dziękuję bardzo, na razie działa.

-- 
Tomasz Szczesniak
tszczesn_at_elka.pw.edu.pl - Nie užywa , nied ugo go stracŠ
tszczesn_at_pay.com.pl
FIDO: 2:480/127.134	HYDEPARK moderator
http://www.pay.com.pl/oldradio


To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 15:32:03 MET DST