gpt4 book ai didi

c - C中对齐使用多少内存?

转载 作者:太空宇宙 更新时间:2023-11-04 00:43:49 25 4
gpt4 key购买 nike

我有这个程序:

__attribute__((section(".graph"))) __attribute__((aligned(16)))
uint16_t FLASH_BUFFER2[FLASH_SECTOR_SIZE];

int main ()
{
printf("Hallo World"\n);
}

当我运行它时,它会在内存中保留 FLASH_SECTOR_SIZE * 16 字节吗?

编辑:技术上正确的问题是“它是否在内存中保留 FLASH_SECTOR_SIZE * 2 * 16 字节?(2 个用于 uint16_t,16 个用于对齐)”

最佳答案

没有。 __attribute__((aligned(16))) 只是确保 FLASH_BUFFER2 位于 16 字节边界上。它仍将保留 FLASH_SECTOR_SIZE * sizeof(uint16_t) 字节。

当我过去使用该属性时,是因为 DMA Controller 或用于写入/从内部闪存写入的机制要求 RAM 位置位于 16 字节边界上。因为您是在嵌入式系统上执行此操作,所以您可能会处理同样的事情。

关于c - C中对齐使用多少内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53418234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com