在简单的函数中处理C中可能的错误

时间:2014-03-21 00:56:50

标签: c error-handling

我有以下代码:

// global variables
count = 0;
char arr[50][5];

main(){
   // do something
}

init(){
   count = 0;
   memset (arr, 0, sizeof(arr));
}

如果init()成功,我需要返回1,否则返回0。但是,我无法看到init()在技术上如何失败。我应该如何在init()中实现这个错误处理程序?

1 个答案:

答案 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;