内联函数及其实现
对于那些回答的人来说,这应该是容易的.这个问题有一个合乎逻辑的答案,但我想要问一下验证.
我对程序流程如何工作的理解很简单.函数及其相关指令位于存储器中的某个点.内存中的此位置是用于存储此类指令的单个位置.调用时,该函数的第一条指令的位置存储在程序流程中.该内存指针指示CPU在内存中的位置查找所需功能的指令.跳转到该位置并执行指令后,恢复正常的程序流程并且CPU跳回原始地址指令所在的位置以继续执行连续指令. 据我所知,内联函数被粘贴到调用它们的位置.因此,当写入源文件并定义内联函数时,实际上在内存中存在多个位置,此函数的指令集位于该位置(即它的确切位置).那么,就是说内存中没有类似于非内联函数的源位置? 此外,在编译过程中,编译器是否只是将内联函数准确地粘贴到调用的位置,并使用传递给它的参数删除/替换函数定义的任意参数名称? 解决方法
这取决于.即使函数是内联函数,编译器实际上也可能没有内联函数.
这取决于函数的内联方式.如果在转换单元中有4个内联函数调用,则编译器可能会决定内联其中一个是正常的,其余调用应使用常规函数调用.所以在这种情况下,有一个“源”位置和一个内联位置.
内联函数必须与普通函数调用具有相同的含义. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |