为什么/usr/include/linux/stddef.h为空?
这个头文件应该定义NULL或者size_t等宏,但是我发现/usr/include/
linux/stddef.h是空的?为什么?
解决方法
标头的实际位置是实现定义的.你看的不是典型的< stddef.h>由gcc包含您可以通过以下方式找出系统所在的位置:
gcc -E - <<<'#include<stddef.h>' | grep stddef.h 这相当于包括标题< stddef.h>在一个空的C文件中并运行gcc -E. /usr/include / linux中的标头用于编译C库(通常是Linux上的glibc). GNU manual说:
而C库头文件通常位于/usr/lib /中的某个位置.在我的ubuntu 15.04上,头文件/usr/include/linux/stddef.h为空.但是在我的CentOS上,它有: #ifndef _LINUX_STDDEF_H #define _LINUX_STDDEF_H #undef NULL #if defined(__cplusplus) #define NULL 0 #else #define NULL ((void *)0) #endif #endif 底线是,这不是你感兴趣的stddef.h,一般来说,你不应该对标准头文件的位置做任何假设. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |