gpt4 book ai didi

c - 静态链接函数在同一台机器上运行时是否具有相同的指针值?

转载 作者:太空宇宙 更新时间:2023-11-03 23:51:58 24 4
gpt4 key购买 nike

我想为 my postscript interpreter 添加快速启动功能因此它可以绕过冗长的(-ish)初始化例程并立即开始执行用户程序。所以我将所有解释器内存设计为包含在内存映射文件中。该内存中的所有内部“指针”实际上是从基指针到内存文件开头的整数字节偏移量。所以,我想我已经在设计中为此做好了准备。

我关心的是包含函数指针的运算符表。我想 C 本身在这方面没有提供任何保证,但是我可以假设指向静态链接函数的函数指针对于同一可执行文件的单独运行将保持不变吗?这是否取决于虚拟内存的存在? POSIX 是否解决了这个问题?

使用 Cygwin,我似乎每次都获得相同的指针值。但是,测试永远无法证明不存在错误

编辑:在我看来,效率并不是这里的唯一目标。封装内存使用是一个更大的目标(快速启 Action 为奶酪)。封装在调试中也非常有帮助。

最佳答案

也许吧。不要依赖它。

正如 Mat 评论的那样,ASLR 随机化了地址。所以当它启用时,你不会得到相同的指针。
没有它,您可能会得到相同的指示。但是环境中的微小变化(可能是您正在使用的库中的补丁)会破坏它。所以你会有一个非常不可靠的程序。

关于c - 静态链接函数在同一台机器上运行时是否具有相同的指针值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18040735/

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