Poo*_*ria 6 c++ compiler-construction segment
除了在运行时提供加载/卸载方法或函数的能力的Dll概念之外,我想知道编译器是否会说出类似的东西,好吧,因为代码段的这个特定部分占用了相当大的空间并且是在程序执行过程中,在此之后永远不会再次使用,在程序执行期间到达该特定点之后生成一些代码来卸载代码段的那部分是很好的,这样代码段占用的整体空间就会变小.它是虚构的还是可能发生的?
编译器可以做任何它想做的事,只要不违反标准。如果它能够确定该代码永远不会再次被调用,它就可以完全放弃它。
如果需要的话,它甚至可以用一个更小的存根函数来替换它,该存根函数可以重新加载代码。
但您不太可能在现代操作系统中看到这一点,因为操作系统本身在幕后提供了该功能。
当内存不足时,操作系统(至少是常见的操作系统)将交换物理页面,并且直到需要时才会重新加载它们(通常是在尝试访问它们时出现页面错误)。