您当前的位置:首页 > 计算机 > 编程开发 > C语言

C语言常见问题--- 参数校验问题

时间:01-03来源:作者:点击数:

在C语言的函数中,一般都要对函数的参数进行校验,但是有些情况下不在函数内进行校验,而由调用者在外部校验,到底什么情况下应该在函数内进行校验,什么情况下不需要在函数内进行校验呢?下列原则可供读者参考。

1)对于需要在大的循环里调用的函数,不需要在函数内对参数进行校验。

例如链表的逐个遍历函数 void *List_EnumNext(LIST *pList)。

在链表的逐个遍历函数里,要不要对pList参数的合法性进行校验呢?答案是否定的。为什么呢?因为链表的逐个遍历函数通常是要在一个循环里使用的,比如一个链表有10 000个节点,逐个遍历就要遍历10 000次。如果上面的函数对参数pList进行了校验,那么对整个链表的逐个遍历过程将校验10 000次,不如由调用者在调用函数前校验一次就够了。因此,像这种可能频繁地被调用,且在外面校验只要校验一次就够的函数参数是不需要在函数内部进行校验的。

2)底层的函数调用频度都比较高,一般不校验。

3)对于调用频度低的函数,参数要校验。

4)执行时间开销很大的函数,在参数校验相对整个函数来讲占的比例可以忽略不计的情况下,一般最好对函数参数进行校验。

5)可以大大提升软件的稳定性时,函数参数要进行校验。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门