[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[WitchTech 00017] Re: サンプルソース
- Subject: [WitchTech 00017] Re: サンプルソース
- From: "c.mos" <c.mos@zob.ne.jp>
- Date: Wed, 19 Jul 2000 00:50:08 +0900
後藤さん、はじめまして。
Hirobumi Gotoh wrote:
> 単純にバイトオーダーの違うコンピュータで開発したソースなのかなと思ってい
> るのですが、何か深い意味があるのでしょうか?
この問題は、'★' のような、2バイト文字定数の扱いが、コンパイラによって
異なるためです。
TurboC 2.0(英語版)では、0x9A81 と、上位下位が逆転してしまいますが、
LSIC他、日本語対応のCコンパイラでは、0x819A と解釈されます。
text_put_char() で全角文字を渡す場合は、後者の形式を受け取りますので、
ソースをTurboCでコンパイルする場合は、上位下位を逆転する必要があるわけです。
従って、正しくは
#ifdef __TURBOC__
#define rvcc(c) (((c)<<8) | ((c)>>8 & 0xff))
#else
#define rvcc(c) (c)
#endif
とすべきでしょう。
c.mos
ML Archives