【发布时间】:2010-09-18 05:42:45
【问题描述】:
有时,当我们谈论 NULL 时,我会遇到与其他程序员的沟通问题。现在 NULL 可能是
NULL 指针
NUL 字符
某种数据库中的空数据元素。
NUL 似乎是最令人困惑的。它是 ASCII 字符 0x00。
我倾向于在我的代码中使用 '\0' 来表示它。我组的一些开发人员
倾向于简单地使用 0,并让编译器将其隐式转换为 char。
你更喜欢用什么来做 NUL?为什么?
【问题讨论】:
-
\0 是 NUL,而不是 NULL。因此,我恢复到 OP 的原始版本。
-
您的问题是关于对话的清晰性还是代码的清晰性?请澄清。
-
两者都是。从口头上讲,设置上下文并没有太大作用。在代码中,我更喜欢避免由隐式转换引起的额外代码。我有兴趣了解其他开发人员如何处理这个问题,或者至少获得一些其他关于如何思考它的观点。
-
每一行的意图是什么? char x = NULL;
char *x = NULL;
char *x = 0;
char x = 0;
char *x = '\0';
char x = ' \0';
-
它们都存储了相同的二进制模式,但意图并不明确。 NULL 有指针的含义,0 有整数的含义,而 '\0' 更接近于 NUL。