我有对字符串执行操作的函数。例如,String *concat(s1, s2);
这将转换 s1+s2 并返回一个新的字符串。
我想另一个用户可以向我发送 NULL 参数。 我可以检查 NULL。
if(s1 == NULL || s2 == NULL)
return NULL;
并且只返回 NULL。
或者我可以使用以下命令退出整个程序:
exit(EXIT_FAILURE);
我认为解决该问题的最佳方法是退出该函数并且不返回任何内容。但是,如果我的用户正在等待字符串而我只是返回,他不会崩溃并烧毁吗?我还觉得打印给用户是个坏主意。
我很想找到一种方法来退出该函数,并在任何情况下都允许程序继续执行。
最佳答案
由于 C 没有异常,因此您必须在返回值中发出错误条件信号。虽然在这种情况下,为无效输入返回 NULL 听起来是一个不错的选择,但您可以更改设计,以便可以返回错误代码和连接的字符串:使函数接受三个参数,其中一个是输出参数。
int concat(string s1, string s2, string *out)
如果出现错误,该函数将返回错误代码,否则将结果写入输出参数。
关于C 检查 NULL 和错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18930251/