0

次の選択肢のどれを使用するかについてのコンセンサスはありますか(ここではC言語で例示されています)?

  1. すべてのパラメーターに対して1つのアサーション:

    int f(int m, int n)
    {
       assert((m >= 0) && (m <= mmax) && (n >= 0) && (n <= nmax));
       ...
    }
    
  2. パラメータごとに1つのアサーション:

    int f(int m, int n)
    {
        assert((m >= 0) && (m <= mmax));
        assert((n >= 0) && (n <= nmax));
        ...
    }
    
  3. 原子条件によるアサーション:

    int f(int m, int n)
    {
        assert(m >= 0);
        assert(m <= mmax);
        assert(n >= 0);
        assert(n <= nmax);
        ...
    }
    
4

1 に答える 1

1

私は個人的に、読みやすさだけでなく、将来の保守性とデバッグのために、3番目のものを好みます。コードが記述された後、アサーションの1つが突然失敗し始めたと想像してください。最初の2つのいずれかを使用すると、これらのアサーションの1つが失敗したときに、どちらの条件が偽であるかが正確にわかりません。

しかし、3つ目では、あいまいさはまったくありません。

于 2013-01-28T15:06:42.270 に答える