哪个C标准头文件定义NULL字符?

时间:2019-07-27 14:13:21

标签: c

哪个C标准头文件定义了NULL字符(\0)的符号常量,该字符用作字符串终止符?

尽管我在程序中将其定义为:

#define NULL_CHAR       '\0'

我正在寻找一种合适的方法。另外,假设它是在某些头文件中定义的,那么仅出于访问此字符而不是自己定义该字符的目的而包含头文件是否会有缺点?

5 个答案:

答案 0 :(得分:5)

没有。并且'\0'不是char,而是int。如果您不想使用'\0',则可以使用00x000000等...

答案 1 :(得分:5)

NULL宏在<stddef.h>中定义。 (它也在其他几个头文件中定义。)它扩展为空指针常量,旨在与指针一起使用,而不与字符一起使用。

'\0'没有标准宏。它等效于0(字符常量的类型为int),并且它的宏用途有限。

字符'\0'通常被称为空字符,但这不同于NULL指针常量。

答案 2 :(得分:3)

  

哪个C标准头文件定义了NULL字符?

没有。 空字符是语言定义的一部分。

  

所有位都设置为0的字节,称为空字符,...;它   用于终止字符串。 C11dr§5.2.12

如果您想要自己的宏,请考虑

#define NUL_CHAR ((char) '\0')

请注意,当编码为'\0'时,这是类型int的常量。


NULL

大写字母NULL(带有2个L)用于命名空指针常量NULL。最好与指针一起使用,而不是在字符串末尾作为空字符

  

NULL(和其他标头)中的宏<stddef.h>被定义为空指针常量

答案 3 :(得分:1)

没有空字符的标准定义。只需使用'\0'

答案 4 :(得分:1)

没有C标准库头文件定义空字符常量。相反,只需在应用程序中使用'\0'