Navigation Log - なびろぐ -
2002/10/12

...X680x0 spirit inside...

この日記はGNSで生成しています。
この日記の画像はOPTPiX webDesigner Ver.4で生成しています。

hauN
Go amazon.co.jp

■ご注文リストから■ [一覧]
■Amazonギフト券■ [購入]
大上さん、だだ漏れです。(1) (アフタヌーンコミックス) []
大上さん、だだ漏れで...
Amazonほしい物リスト


2002/10/12 (土)

未定義

_ unsigned→signed。昨晩(今朝?)のIRCの続きですが、そのようなcastを行ったときは「0〜SCHAR_MAX(127)以下の値に対してのみ規定通りに動作すればよく、それ以外の値については未定義」となっています。

_ 実際、どちらのコードでも、0〜SCHAR_MAX(127)に対しては期待通りの動作になりますよね。128〜255のときにどう動作するかのコードが状況により不定になるのは、それはそれでCコンパイラ的には正しい動作です。未定義なんだから、どう動いてもいいわけで。

_ 蛇足。7bit文字コード圏のソフトウェアに日本語(というかShift-JISやEUC)を食わせたときに異常動作が発生するのは、signed charに8bit文字コードを入れたときの未定義動作のせいがまず挙げられます。ローレベルで処理するならunsigned 8bit、上位ならそれなりの型(マルチバイトやワイド文字)を使うべきですな*1

*1: ・・・と安易に書くと、塩兄とかごうちゃとか他方面から弾が飛んできそうでちと怖いですが(苦笑)。

_ 追記。未定義じゃなくて処理系依存だったらしい。詳しくは追ってごうちゃあたりから記述があるかと(汗)。





メールはこちらへ...[後藤浩昭 / Hiroaki GOTO / GORRY / gorry@hauN.org]

「表紙へ戻る」
「会議室」 「最新版」 「なびろぐindex」 「GNSソースを読む」