TOMOYO Linuxat LINUXTOMOYO Linux - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト673:LiveCDの中の人 07/12/29 03:31:21 i64ao+JI >>672 結論から言うと、このwarningは無害です。 警告を消すには、Makefileの35行目のコメントアウトを解除して、 37行目をコメントアウトしてください。 Vineで出ずにEtch/Lennyで出る、というのは、 Vineのgccが、この警告を表示するオプションno-pointer-signが まだ実装されていないバージョンのためです。 TOMOYOの内部では文字列をunsigned charポインタで表現していますが、 strlenなどの関数が受け取り方がただのcharポインタであることが原因です。 674:login:Penguin 07/12/29 09:11:51 S76xHoyg >>673 文字コードに依存した処理(文字コードに子息演算とか)をしなければ、charで事足りると思うのですが、 敢えてucharな理由はなんですか? 675:login:Penguin 07/12/29 15:07:37 hCsJ400H >>674 TOMOYO ではエンコーディングは考慮しません。 全ての文字列を ASCII printable な文字だけで構成します。 そのため、 ASCII printable ではない範囲のバイト ( 0x01 ~ 0x20 および 0x7F ~ 0xFF )については \ooo という8進数で表記します。 この4バイトで表記される8進数データと1バイトで表記されるバイナリデータとを 相互変換する際にビット演算が必要になるので、毎度 signed か unsigned かを 考慮するのが面倒という理由から、最初から unsigned で扱うようにしています。 また、 ASCII printable でないことを検査する際に 1 以上 32 以下または 127 以上 255 以下と表記する方が -128 以上 -1 以下または 1 以上 32 以下または 127 と表記するよりも 理解しやすいと考えています。 技術的には必要に応じて unsigned char にキャストすれば可能です。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch