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

[WitchTech 00420] Re: DS!=SS 対応コンパイラ?



 川俣です。

 "narunaru@123mail.net"さんは書きました:
> そのとおりなんですが、ポインタは依然として near ですから、(「これでいいん
> でしょうか ?」っていうような話だと) まだまだはまる余地は残っているような気
> がします。
 もちろん、nearポインタで自動変数はアクセスできません。
 これは構造上、どうしようも無いことだと思います。
 farポインタを使えば、アクセスできるはずです。
 Turbo-C 2.0では、自動変数へのポインタをfarポインタに代入するときに、DS
を仮定されちゃうのでNGでした。それが可能になれば、だいぶプログラミングが
楽になると思います。

> こんなのどうでしょう ? > 元記事の方
 元記事の方ではありませんが。
 Turbo C++は1.0までしか持ってないので、VC++1.51でSS!=DSとしてビルドした
結果としては……

Compiling...
c:\vshare\ww\usr\vctest\test001.c
c:\vshare\ww\usr\vctest\test001.c(22) : warning C4035: 'main' : 値を返す
ように宣言された関数が、値を返しませんでした。
c:\vshare\ww\usr\vctest\test001.c(20) : warning C4758: プログラムはSSで
はな
く、DSでコンパイルされました。
c:\vshare\ww\usr\vctest\test001.c(20) : warning C4762: 実引数と仮引数の
ホ
゜インタサイズが異なっています。
Linking...
Creating browser database...
VCTEST.EXE - 0 error(s), 3 warning(s)

 という感じで、SS!=DS問題で正常に機能しないコードを書いた場合は、コンパ
イラが教えてくれます。
 おそらく、Turbo C++でも同様ではないかと思いますが……

(株)ピーデー 川俣 晶 (http://www.autumn.org/ mailto:autumn@piedey.co.jp)



ML Archives