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

[WitchTech 00017] Re: サンプルソース



後藤さん、はじめまして。

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