c - 如何将堆栈中的整数数组分配为 32 位对齐

标签 c linux

我需要在函数中的堆栈中分配一个整数数组,如何使其 32 位对齐?

void f1() {
    uint8_t slope[4*32];
}

我在Linux上运行。

最佳答案

这应该适用于大多数(所有?)体系结构,并且不需要特定于编译器的技术,尽管我承认不确定此声明对于本地与全局/文件范围的含义是什么。

void f1(void)
{
    union
    {
        uint32_t align;
        uint8_t  arr[4*32];
    }   slope;

    /* can now be access via slope.arr[] */
}

关于c - 如何将堆栈中的整数数组分配为 32 位对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21763741/

相关文章:

C 数字猜谜游戏

c - 如何更改另一个函数中的字符串指针数组?

c - for循环末尾的 ";"有什么用?

有人可以修复我创建的这个 for 循环吗

java - Tomcat、mod_jk、Plesk 和 SSL 设置问题

linux - 从 elf 文件中的地址执行函数

linux - Linux系统调用的多个命令

使用 exec() 编译和运行 c 程序

linux - 为什么 vim 语法在不同终端上高亮?

python - 什么IPC机制用于在两个Python进程之间共享multiprocessing.Queue中的数据?