我有以下代码:
// global variables
count = 0;
char arr[50][5];
main(){
// do something
}
init(){
count = 0;
memset (arr, 0, sizeof(arr));
}
如果init()成功,我需要返回1,否则返回0。但是,我无法看到init()在技术上如何失败。我应该如何在init()中实现这个错误处理程序?
答案 0 :(得分:1)
有两个问题:
void
arr
已经初始化为0,因为它有静态存储(全局变量)。基本上main()可以修改count和arr,并且在某些时候我需要 使用init()重新初始化全局变量。
如果稍后可以调用该函数,则将其称为“reset”,“reinit”,“clear”等是有用的。“init”使读者认为它只在调用时被调用一次
根据记录,我必须在init()中返回1或0 是否有错误...
在这种情况下只说:
/* XXX No other return code is possible. */
return 0;