AlignPtr

将传入地址按指定字节进行对齐:

void* HMPP_AlignPtr(void *ptr, int32_t align);

参数

参数名

描述

取值范围

输入/输出

ptr

源地址。

非空

输入

align

对齐字节。

2的整数次幂

输入

返回值

错误码

注意

示例

#define BUFFER_SIZE 100
#define ALIGN_BYTE 64
void AlignPtr_Example() {
    void *ptr = malloc(BUFFER_SIZE);
    if (ptr != NULL) {
        void *alignPtr = HMPP_AlignPtr(ptr, ALIGN_BYTE);
        if ((uint64_t)alignPtr % ALIGN_BYTE == 0) {
            printf("%d byte align\n", ALIGN_BYTE);
        } else {
            printf("not byte align\n");
        }
    }
}

运行结果:

64 byte align