gpt4 book ai didi

c - 如何在编译时找到 C 全局变量的地址

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

我正在做一些代码生成。是否可以在编译时找到全局 C 变量的 future 地址?

假设在一个C文件中有一个全局变量:

const char[] bytecode = "generated bytecode goes here";

之后,我需要在编译时添加指向bytecode的代码:

const char* ptrInsideBytecode = 0x1234 + offset; 
// 0x1234 should be the address of bytecode

不能只引用字节码字段,指针必须固定。

我知道 myVar 在编译和链接后会在某个固定位置,所以这应该是可能的。如何在编译前找到bytecode的准确地址?

最佳答案

没有办法做到这一点,因为编译器必须执行求和才能知道值是什么,但是在链接器运行之前不会知道地址。

根据您的平台,您可以使用链接描述文件将字节码放置在内存中的固定位置。只有当您使用的是没有操作系统的微 Controller 时,这才有可能起作用。

关于c - 如何在编译时找到 C 全局变量的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23249192/

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