���� 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