���� 14-8 linux/include/stddef.h
1 #ifndef _STDDEF_H
2 #define _STDDEF_H
3
4 #ifndef _PTRDIFF_T
5 #define _PTRDIFF_T
6 typedef long ptrdiff_t; // ����ָ�������������͡�
7 #endif
8
9 #ifndef _SIZE_T
10 #define _SIZE_T
11 typedef unsigned long size_t; // sizeof���ص����͡�
12 #endif
13
14 #undef NULL
15 #define NULL ((void *)0) // ��ָ�롣
16
// ���涨����һ������ij��Ա��������ƫ��λ�õĺꡣʹ�øú����ȷ��һ����Ա���ֶΣ���
// �������Ľṹ�����дӽṹ��ʼ��������ֽ�ƫ��������Ľ��������Ϊ size_t ��������
// ������ʽ��������һ�������÷���((TYPE *)0)�ǽ�һ������0����Ͷ�䣨type cast������
// �ݶ���ָ�����ͣ�Ȼ���ڸý���Ͻ������㡣
17 #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
18
19 #endif
20