[Anthy-dev 1983] Re: isdigitの引数の型

Back to archive index

Etsushi Kato ekato****@ees*****
2005年 3月 22日 (火) 17:07:28 JST


On 2005/03/22, at 2:22, Masanari Yamamoto wrote:

> isdigitなどctype.hのマクロの引数は-1〜255でなければならないそうです
> (man isdigit)。この引数の型がcharの場合、-128〜127の値になるので、誤動
> 作を起こすことがあります。
>
> isalnum, isalpha, isascii, isblank, iscntrl, isdigit, isgraph,
> islower, isprint, ispunct, isspace, isupper, isxdigit
> これらのマクロを使う場合は
> isdigit((unsigned char)c)
> のようにunsigned charにキャストする必要がありそうです。

確かにいくつかの環境で試してみたところ、Linux, FreeBSD 4.10, OpenBSD 3.4,
Mac OS X ではキャストしなくても問題ありませんが、NetBSD 1.6.1 と Solaris 9 で
は誤作動をおこしました。

-- 
Etsushi Kato
ekato****@ees*****




Anthy-dev メーリングリストの案内
Back to archive index