ふぢのLINT講座


assignment causes implicit narrowing conversion
(元の型よりも小さなサイズの変数に代入された)

以下のエラーを検出することが出来ます。

(実例1)
main()
{
  short sbuf;
  long lbuf = 0;

  sbuf = lbuf;
  return();
}






long型の変数“lbuf”の内容を、short型の変数“sbuf”に代入している。


補足
  • このメッセージは、関数の戻り値の型にshortなどを使用した場合にも出力されるようです。理由は現在調査中です。
    このメッセージの対策には、以下のものがあります。
    1. 型変換を明示的なものに修正する。
    2. lint実行時に”−a”オプションを付ける。
    “−a”オプションを付けてlintを実行すると、本当に間違っている箇所が出力されなくなるので、極力2の“明示的に型変換を行う”ようにしましょう。


  • もどる