nginx源碼學習_數據結構(ngx_int_t)
阿新 • • 發佈:2017-09-18
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_defined4 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)