我偶然发现了这里和这里的文章,说它是一种很好的编程习惯,永远不会返回 NULL。但是对于需要返回一些东西的函数,它应该返回什么?的值-1
不会削减它,因为假设我们有函数:
char *return_some_string(int input) {
/* do something */
if (error)
return some_thing_not_null;
}
你如何解决这个问题?
我偶然发现了一些文章,说它的良好编程实践永远不会返回 NULL。
无条件地表明该文章的质量。烧掉它吧。
但是对于需要返回一些东西的函数,它应该返回什么?
NULL
. 从概念上讲,这就是“无效指针”、“指向任何内容的指针”等等。使用语言是有充分理由的。
在 C 中,返回 NULL 是完全正常的。
事实上, mallc,C 库有时会返回 NULL ......
你有一个指针,它是 NULL 很好。
如果你想变得异国情调,你可以做 MS 做的事情:
#define INVALID_POINTER_VALUE ((void*)-1l)
因此,您可以返回并对其进行测试。虽然NULL
背后有充分的理由。注意后缀:值必须是long
转换前的类型,或者任何其他与指针大小匹配的类型。