【发布时间】:2016-08-19 06:24:26
【问题描述】:
我可能太好奇或太小心了,但请考虑一下:
例如,如果我将数组放置到某个部分
char buff[128] __attribute__((my_section));
然后使用链接描述文件将该部分放置在例如地址 0x10004000 处,
我可以确定&buff[0] 永远是0x10004000 吗? (我正在考虑 ARM Inc. 的 ARMCC(前 RealView)以及基本的 GCC 工具链和 GNU ARM 开源。)可能有 buff 从一开始就存在偏移或填充,或者某些服务(运行时、链接、特定于收费链)的东西可能放在buff之前的0x10004000?
另外,在这种情况下,C 和 C++ 之间有什么区别吗?因为 C++ 有“更多的事情要做在后台”。 :)
您可以为此提供任何类型的文档以及您的知识——非常感谢。
【问题讨论】:
标签: gcc linker arm sections toolchain