(toppers-users 586) systask/serial.c で MAX_FLUSH_LOOP と比較している変数のデータ型について

Naoki Saito saito @ nmiri.city.nagoya.jp
2002年 10月 29日 (火) 09:30:19 JST


斉藤@名古屋市工研です.

systask/serial.c にある serial_close 関数で
int型の変数 i と MAX_FLUSH_LOOP との比較をしている箇所があるのですが,

/*
 *  バッファのフラッシュ処理
 */
if (flush) {
        for (i = 0; i < MAX_FLUSH_LOOP; i++) {
                if (spcb->out_write_ptr == spcb->out_read_ptr) {
                        break;
                }
        }
}

MAX_FLUSH_LOOP は 1000000 に #define されているのですが,
_16BIT_INT_ を #define しているターゲットにおいては常にこの比較が真になります.

そこで変数i を W か UW のようにしたらこのような問題は解決するように
思うのですが, いかがでしょうか.

これに便乗して一つ質問させていただきたいのですが,
(FAQでしたら恐縮ですが)通常のCデータ型とITRON仕様共通データ型は
皆様どのように使い分けていらっしゃるのでしょう?