Article View: pl.comp.lang.c
Article #289Re: Uwaga: blad w funkcji isdigit .
From: Jacek Czerwinski
Date: Fri, 14 Nov 1997 06:17
Date: Fri, 14 Nov 1997 06:17
37 lines
2187 bytes
2187 bytes
Karol Wojtiuk wrote: Chyba masz racje, w borlandzie o ile pamietam jest najpierw filtrowana na zakres, a moze tylko w wersji z mocniejszym deguggiem ? Moze nie w borlandzie, ale gdzies widzialem .... Albo makra, ktore pomyslane sa dla liczb dodatnich, a daje ktos znak > 128, a znak jest signed ... > > Witam wszystkich > funkcja isdigit jest zadeklarowana następująco: > int isdigit(int c); > i ma ona za zadanie sprawdzać czy dane c jest znakiem z przedzialu '0' - > '9'. > Nie wiem jak wyglądają implementacje w innych bibliotekach ale w > dostarczanej > przez Microsoft isdigit operuje na tablicy _ctype[257]. Jak widać z rozmiaru > tablicy > można sprawdzić tylko 257 wartości i jeżeli zmienna c przyjmie wartość > ujemną (co > może być bardzo częste gdy używamy jako parametru wartości typu char ze > znakiem) > lub przyjmie wartość powyżej 256 to program nam się wywala. > Rozumiem, że ze względu na dużą szybkość przyjęto taki sposób implementacji > ale > po pierwsze należało sporządzić inną deklarację funkcji (parametr typu int > mówi wyraźnie, > że możemy używać wartości parametru w o wiele większym zakresie niż tylko od > 0 do 256) i > po drugie można było zaznaczyć w opisie funkcji, że akceptuje ona tylko > wartości od 0 do 256. > Co o tym sądzicie? > A może ja jestem w błędzie? > Czy zauważyliście inne kwiatki? > Pozdrowienia > Karol Wojtiuk > PS. Powyższe prawdopodobnie tyczy się wszystkich funkcji is..., ale jeszcze > tego nie sprawdzałem.
Technical Details
Message-ID:
<346BED09.74A1BB6E@rubikon.net.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.icm.edu.pl!news.webcorp.com.pl!not-for-mailReferences:
<64flfj$jds$1@sunsite.icm.edu.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.icm.edu.pl!news.webcorp.com.pl!not-for-mail From: Jacek Czerwinski <klik@rubikon.net.pl> Newsgroups: pl.comp.lang.c Subject: Re: Uwaga: blad w funkcji isdigit . Date: Thu, 13 Nov 1997 22:17:45 -0800 Organization: Biuro Inf. KLIK Lines: 37 Message-ID: <346BED09.74A1BB6E@rubikon.net.pl> References: <64flfj$jds$1@sunsite.icm.edu.pl> NNTP-Posting-Host: 194.204.150.74 Mime-Version: 1.0 X-Mailer: Mozilla 4.01 [en] (Win16; I) X-Priority: 3 (Normal) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit