Nginx中发现的一个内存对齐宏定义

    技术2022-05-19  20

    刚从Java转到C不久,发现宏是个好东西,可以有效的组织代码。

     

    今天在读Nginx的code的时候发现ngx_config.h中有这样一个宏定义:

     

    #define ngx_align(d, a)     (((d) + (a - 1)) & ~(a - 1))

     

    意思是以a为对齐因子,申请d大小的pool空间,实际至少需要分配多大pool空间来实现内存对齐。

     

    例如,按16字节对齐,申请56个字节的空间,为了内存对齐实际分配的是64字节。

     

    之所以 d 要加上 a-1,是要d%a的进位。


    最新回复(0)