函数对非法参数输入的判断需要做到什么程度?
我们开发了一套C函数库,现在在进行测试,有这样一个函数,完成对一个或多个SConfig结构对象(SConfig是我们定义的一个结构类型)的初始化工作,如下:
int InitObject
( SConfig* pObject, /* 指向待初始化的SConfig结构或SConfig结构数组 */
int Count /* 结构的个数 */
);
测试时发现,对于Count参数,传入负值时函数会发生异常错误,不过按正常逻辑,Count是不可能取小于零的数的。我认为应该加入对负值的判断,但我的同事认为没有必要,提出ANSIC函数库中的strncpy( char *strDest, const char *strSource, size_t count )函数在count参数取负值时同样会发生异常。
这个问题,我确实是不能肯定到底需要修改否,大家是如何看待的呢?