要包含头文件stddef.h,因为定义在该文件中
NULL宏是定义在标准库头文件stddef.h中。宏定义如下:undef NULL #if defined(__cplusplus)#define NULL 0#else#define NULL ((void *)0)#endif可以看出c++中 NULL为(int)0 , C中NULL为(void*)0。看来C和C++中NULL宏的值略有不同。
● 符号常量NULL(空指针值); ●宏offsetot (这是一个带参数的宏,第一个参数应是一个结构类型,第二个参数应是结构成员名。 offsetot(s,m) 求出成员m在结构类型t的变量里的偏移量)。 注:其中有些定义也出现在其他头文件里(如NULL)。 二、错误信息(<errno.h>) <errno.h>定义了一个int类型的表达式errno...
● 符号常量NULL(空指针值); ●宏offsetot(这是一个带参数的宏,第一个参数应是一个结构类型,第二个参数应是结构成员名。 offsetot(s,m) 求出成员m在结构类型t的变量里的偏移量)。 注:其中有些定义也出现在其他头文件里(如NULL)。 二、错误信息(<errno.h>) <errno.h>定义了一个int类型的表达式errno,...
linux c null 头文件 Linux是一种广泛使用的开源操作系统,其中的C语言是一种非常重要的编程语言。在C语言中,指针是一种非常有用的数据类型,需要特别注意对空指针的处理。而在Linux系统中,有一个叫做NULL的头文件,它提供了一些与空指针相关的常量和宏定义,能够帮助开发人员更好地处理空指针。
NULL 是标准库中的一个符合上述条件的 reserved identifier (保留标识符)。所以,如果包含了相应的标准头文件而引入了 NULL 的话,则再在程序中重新定义 NULL 为不同的内容是非法的,其行为是未定义的。也就是说,如果是符合标准的程序,其 NULL 的值只能是 0,不可能是除 0 之外的其它值,比如 1、2、3 等。
表示以二进制方式打开 D 盘下的 demo.txt 文件,允许读和写。 判断文件是否打开成功 打开文件出错时,fopen() 将返回一个空指针,也就是 NULL,我们可以利用这一点来判断文件是否打开成功,请看下面的代码: 1 2 3 4 5 FILE*fp; if( (fp=fopen("D:\\demo.txt","rb")) == NULL ){ ...
NULL 是标准库中的一个符合上述条件的 reserved identifier (保留标识符)。所以,如果包含了相应的标准头文件而引入了 NULL 的话,则再在程序中重新定义 NULL 为不同的内容是非法的,其行为是未定义的。也就是说,如果是符合标准的程序,其 NULL 的值只能是 0,不可能是除 0 之外的其它值,比如 1、2、3 等。
5.4 NULL 是什么, 它是怎么定义的? 作为一种风格, 很多人不愿意在程序中到处出现未加修饰的0。因此定义了预处理宏NULL (在<stdio.h> 和其它几个头文件中) 为空指针常数, 通常是0 或者((void *)0) (参见问题5.6)。希望区别整数0 和空指针0 的人可以在需要空指针的地方使用NULL。
3.1NULL 在C语言中,NULL代表空指针 int*p1=NULL; 1. NULL实际是一个宏,在c语言头文件stddef.h中,可以看到如下代码: #ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void *)0) #endif