按某类型对齐的C代码实现

#define ALIGN_UP(addr, align) ((((nlm_uintptr_t) (addr)) + ((align) - 1)) & ~((align) - 1))

test programing:

#include <stdio.h>
#include <stdlib.h>

int main()
{
        int i = 0, n = 0;
        printf("----sizeof(long) len is %d----\n", sizeof(long));
        for(; i < 50; i++)
        {
                n = (i + sizeof(long) -1) & ~((sizeof(long) - 1));
                printf("--- i is %d n is %d---\n", i, n);
        }
        return 0;
}

----sizeof(long) len is 4----
--- i is 0 n is 0---
--- i is 1 n is 4---
--- i is 2 n is 4---
--- i is 3 n is 4---
--- i is 4 n is 4---
--- i is 5 n is 8---
--- i is 6 n is 8---
--- i is 7 n is 8---
--- i is 8 n is 8---
--- i is 9 n is 12---
--- i is 10 n is 12---
--- i is 11 n is 12---
--- i is 12 n is 12---
--- i is 13 n is 16---
--- i is 14 n is 16---
--- i is 15 n is 16---
--- i is 16 n is 16---
--- i is 17 n is 20---
--- i is 18 n is 20---
--- i is 19 n is 20---
--- i is 20 n is 20---
--- i is 21 n is 24---
--- i is 22 n is 24---
--- i is 23 n is 24---
--- i is 24 n is 24---
--- i is 25 n is 28---
--- i is 26 n is 28---
--- i is 27 n is 28---
--- i is 28 n is 28---
--- i is 29 n is 32---
--- i is 30 n is 32---
--- i is 31 n is 32---
--- i is 32 n is 32---
--- i is 33 n is 36---
--- i is 34 n is 36---
--- i is 35 n is 36---
--- i is 36 n is 36---
--- i is 37 n is 40---
--- i is 38 n is 40---
--- i is 39 n is 40---
--- i is 40 n is 40---
--- i is 41 n is 44---
--- i is 42 n is 44---
--- i is 43 n is 44---
--- i is 44 n is 44---
--- i is 45 n is 48---
--- i is 46 n is 48---
--- i is 47 n is 48---
--- i is 48 n is 48---
--- i is 49 n is 52---
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值