要包含头文件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,...
if( (fp=fopen("D:\\demo.txt","rb")) == NULL ){ printf("Fail to open file!\n"); exit(0);//退出程序(结束程序) } 我们通过判断 fopen() 的返回值是否和 NULL 相等来判断是否打开失败:如果 fopen() 的返回值为 NULL,那么 fp 的值也为 NULL,此时 if 的判断条件成立,表示文件打开失败。 ...
linux c null 头文件 Linux是一种广泛使用的开源操作系统,其中的C语言是一种非常重要的编程语言。在C语言中,指针是一种非常有用的数据类型,需要特别注意对空指针的处理。而在Linux系统中,有一个叫做NULL的头文件,它提供了一些与空指针相关的常量和宏定义,能够帮助开发人员更好地处理空指针。
if ( p != NULL ) /* 使用 NULL 必须包含相应的标准库的头文件 */ if ( NULL != p ) if ( p ) if ( p != q ) ... 可以用 memset 函数来得到一个空指针吗? 这个问题等同于:如果 p 是一个指针变量,那么 memset( &p, 0, sizeof(p) ); 和 p = 0; ...
如上的代码中,我们定义了全局变量rand,但是要知道C语言存在一个库函数正是rand(随机数种子),在头文件#include <stdlib.h>。这里很明显发生命名冲突了,我们定义的全局变量rand和库里的rand函数冲突。想要解决此问题也非常简单,修改变量名就可以了,确实可以,但并不是长久之计,万一你不小心在程序中定义了多个与库函数...
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
5.4 NULL 是什么, 它是怎么定义的? 作为一种风格, 很多人不愿意在程序中到处出现未加修饰的0。因此定义了预处理宏NULL (在<stdio.h> 和其它几个头文件中) 为空指针常数, 通常是0 或者((void *)0) (参见问题5.6)。希望区别整数0 和空指针0 的人可以在需要空指针的地方使用NULL。