那字符串常量举一个例子,"hello world"这个字符串被当作常量而且被放置在此程序的内存静态区。而在程序结束后,”hello world"的空间会被释放。
我很好奇的一点是,在程序进行中时,这个"hello word"的空间是怎么生成的。是不是我在编译器上打出“hello world",就自动给它分配了内存?
类似的其他常量 1,2也是这样吗?
是运行到hello world的时候才会去常量池里面找是否有hello world,若有就直接把这个地址(引用)赋值给变量,若没有就会先在常量池中创建hello World这个字符串的空间,然后把这个地址赋值给变量
编译器做的事情,在你编译的时候就已经分配好的。并不是“在程序进行中时”
检查方法比较简单:请随便下载一个静态exe文件分析程序,然后找个exe分析一下
当然这种静态文件和资源文件分析的东西比较多
我随手找个IDA pro 的资料给你“投石问路”一下
https://blog.csdn.net/fuhanghang/article/details/122583095
以下答案引用自GPT-3大模型,请合理使用:
。
这个问题有点抽象,不好回答。 不过在编译的时候会生成相应的代码,你可以查看一下生成的代码。