🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #292

Re: Uwaga: blad w funkcji isdigit .

#292
From: Marek Kotowski
Date: Fri, 14 Nov 1997 15:40
46 lines
2567 bytes
Karol Wojtiuk wrote:
> Blad w isdigit jest poniewaz w opisie tej funkcji jak i w header'ach
> bibliotek nie jest zaznaczone, ze mozna operowac tylko na wartosciach od -1
> do 255, a deklaracja funkcji mowi jasno o dopuszczalnosci argumentu z
> zakresu int. 

  Calkowite nieporozumienie. Wartosci znakow nigdy nie beda zaznaczone,
albowiem standard nie mowi nic o wartosciach kodow. Nawet wartosc EOF
jakkolwiek tradycyjnie ujemna, formalnie moze byc takze dodatnia.
Definicja isdigit mowi tylko, ze zwraca ona wartosc rozna od zera,
jesli dany znak (konwertowany do int) jest '0' - '9' oraz wartosc
rowna zeru w przeciwnym wypadku. To, jakie sa wartosci kodow znakow
'0'-'9', to sprawa zupelnie inna i zalezna calkowicie od implementacji.
Wszystko.

> Na koniec warto dodac, ze to wszystko dotyczy tylko funkcji bibliotecznych
> Microsoft.

Niewykluczone, ze implementacja isdigit jest bledna, chociaz prawde
rzeklszy
musialbym sam zobaczyc, by uwierzyc. Napisalem duzo kodu z
wykorzystaniem
isdigit, i w BC, i w MSC, i w GNU, i nigdy z ta funkcja nie bylo
problemu.

> Slon przyslal mi opis tych funkcji w UNIX SVR4 gdzie jasno jest opisane, ze
> operuja one
> tylko i wylacznie na 7-mio bitowym kodzie ASCII, czego u Microsofta prozno
> szukac.

I bardzo dobrze. Funkcja isdigit jest funkcja standardowa. A w
standardzie
nie ma nic o kodzie ASCII, ani np. EBCDIC. Powiem nawet wiecej: zgodnie
ze
standardem znak moze byc kodowany takze na wiekszej liczbie bitow, 9,
12, czy 16. 
  I jeszcze jedno: dzialanie funkcji isdigit moze byc uzaleznione od
biezacej wersji jezykowej, ustawianej za pomoca standardowej funkcji
setlocale. Z tego, co Pan napisal, mogloby wynikac, ze w UNIX SVR4
jest to niedopuszczalne (wersje jezykowe inne niz "amerykanski"
angielski
wymagaja wiecej niz 7 bitow na znak. Tym samym w UNIX SVR4 (kompilator?)
takich wersji nie mozna by deklarowac. 

  Z powazaniem 
  Marek Kotowski
Technical Details
Message-ID: <346C70EB.6EE9@imm.org.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.nask.pl!usenet
References: <64flfj$jds$1@sunsite.icm.edu.pl> <346C146D.4F69@imm.org.pl> <64h90j$sf7$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.nask.pl!usenet
From: Marek Kotowski <mkot@imm.org.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: Uwaga: blad w funkcji isdigit .
Date: Fri, 14 Nov 1997 16:40:27 +0100
Organization: Instytut Maszyn Matematycznych
Lines: 46
Message-ID: <346C70EB.6EE9@imm.org.pl>
References: <64flfj$jds$1@sunsite.icm.edu.pl> <346C146D.4F69@imm.org.pl> <64h90j$sf7$1@sunsite.icm.edu.pl>
NNTP-Posting-Host: 148.81.238.38
Mime-Version: 1.0
X-Mailer: Mozilla 3.01Gold (Win95; I)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit