1. 程式人生 > >nginx源碼學習_數據結構(ngx_int_t)

nginx源碼學習_數據結構(ngx_int_t)

usr tdi col end conf 學習 unsigned div 數據

nginx中關於整型的數據結構位於src/core/ngx_config.h中

結構比較簡單,就是一個typedef的操作,具體如下:

1 typedef intptr_t        ngx_int_t;
2 typedef uintptr_t       ngx_uint_t;
3 typedef intptr_t        ngx_flag_t;

裏面的intptr_t和uintptr_t的定義位於/usr/include/stdint.h中

 1 /* Types for `void *‘ pointers.  */
 2 #if __WORDSIZE == 64
 3 # ifndef __intptr_t_defined
4 typedef long int intptr_t; 5 # define __intptr_t_defined 6 # endif 7 typedef unsigned long int uintptr_t; 8 #else 9 # ifndef __intptr_t_defined 10 typedef int intptr_t; 11 # define __intptr_t_defined 12 # endif 13 typedef unsigned int uintptr_t; 14 #endif

另外,C99 標準定義了 intptr_t 和 uintptr_t 類型給一個可以持有一個指針值的整型變量。這是因為它們的大小和指針的大小一樣,因此也有了註釋中的/* Types for `void *‘ pointers. */這句話。

nginx源碼學習_數據結構(ngx_int_t)