2

関数ライブラリを作成するとき、関数パラメーターが親ライブラリで既にチェックされている場合、子ライブラリで関数パラメーターをチェックする必要があるかどうかについてのコンセンサスはありますか? 例として、次のコード フラグメントを考えてみましょう。

uint8 er_remove(DE_LIST *deque)
{
    ER_OBJECT *object;
    uint8 result = ER_BAD_ARGUMENT;

    if (deque != NULL)
    {
        result = de_remove_first(deque, (void **)&object);
    }

    return result;
}

関数がパラメーターをde_remove_first()チェックしてdequeNULL かどうかを確認する場合、er_remove().

機能的な観点からは、チェックインer_remove()は明らかに必要ありません。ただし、パラメーターがチェックされていることを読者に明らかにし、将来のコード改訂でdequeもチェックへの依存を取り除きます。de_remove_first()

何かご意見は?

4

2 に答える 2