Clang/LLD中是否存在__data_start__的等效符号?
Clang中获取数据段起始地址的方法
Clang完全兼容GCC定义的__data_start__符号,你可以直接沿用原来的代码,不需要修改就能在Clang编译环境下正常运行。
除了__data_start__,你还可以使用另一个兼容符号__start_data,用法完全一致:
#include <stdio.h> #include <inttypes.h> extern char __start_data[]; int main() { printf("data section starts at 0x%" PRIXPTR, (uintptr_t)__start_data); return 0; }
如果你的程序需要更通用的方式(比如跨更多编译器或平台),还可以通过链接脚本自定义数据段的起始符号,但这需要手动修改链接配置,相对繁琐。
内容的提问来源于stack exchange,提问作者Dmitry Grigoryev
相关产品推荐
相关产品推荐

