[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[WitchTech 00298] Re: signed char



こんにちは。すまうぐです。

私もcharではまりました。
charはunsigned charになっているみたいです。
負の数を扱いたいときは
signed char a = -1;
とやらないきゃならないみたいです。
私はchar使うの止めました(^^;



----- Original Message -----
送信者 : "Shigeki Yamamoto" <shige@tsi.co.jp>
宛先 : <tech@wonderwitch.com>
送信日時 : 2000年8月14日 11:31
件名 : [WitchTech 00296] signed char


>
> あんみつ です
>
>
> 質問です。
> たとえば以下のようなコードを実行すると
>
> ---
>
>   enum {
>     aaa = -1
>   } ;
>
>   char a , buf[BUFSIZ] ;
>   a = aaa ;
>   sprintf( buf , "%d" , a ) ;          /* ... (1) */
>   text_put_string( 0 , 0 , buf ) ;
>   if ( a != aaa ) {                    /* ... (2) */
>     text_put_string( 0 , 0 , "NG" ) ;
>   } else {
>     text_put_string( 0 , 0 , "OK" ) ;
>   }
>
> ---
>
> まず、(1)のsprintf()の出力が "-1" ではなく "255" になります。
>
> それから、(2)の比較演算の結果が 真 になってしまいます。
>
> なぜなんでしょうか。。。
> ちなみにLSI-Cのほうです。
>
>



ML Archives