哪个是参数限制的最佳位置 - 内部还是外部功能?

时间:2014-05-13 03:43:21

标签: c

选项1:功能

int funcA(int a){
    if(a < 0){
        return -1;
    }
    else{
        ...
        return 0;
    }
}

选项2:主要

int main(){
    int a;
    ...
    if(a < 0){
        ...
    }
    else{
        funcA(a);
    }
}

选项3:两个地方?如果您有一些建议,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

调用者责任确保它根据文档调用具有有效参数的函数。

当 时,可以防止无效值被调用的函数感兴趣 - 再次,根据文档。

没有固有的&#34;对&#34;或&#34;错误&#34;选择没有 funcA的合同(文档),它高度依赖于该函数的以及 的预期使用

答案 1 :(得分:1)

对于什么是更好的没有严格的规则 - 基本上你需要考虑两种情况。

如果约束对于函数的这种特定用法是唯一的,那么最好将它们放在函数之外,以使函数更加通用化并仅限制对它的特定调用。

如果约束是函数的组成部分,并且每当调用函数时总是会出现这种约束,那么最好将它们放在函数中,这样它们就不必在每个地方重复。函数将被调用。