这应该对那些回答的人来说很容易。这个问题有一个逻辑上的答案,但我想问一下以确认。
我对程序流程的理解很简单。函数及其相关指令位于内存中的某个位置。这个内存位置是用于存储这些指令的唯一位置。当调用时,该函数第一个指令的位置被存储在程序流中。这个内存指针指示CPU在内存中查找所需函数的指令的位置。跳转到这个位置并执行指令后,恢复正常的程序流,并将CPU跳回到原始地址指令所在的位置,继续执行后续指令。
我理解内联函数是直接粘贴到它们被调用的位置中的。因此,当编写源文件并定义内联函数时,实际上存在多个内存位置,其中包含该函数的指令集(即它被调用的确切位置)。因此,可以说内联函数没有类似非内联函数的
此外,在编译过程中,编译器是否只是将内联函数粘贴到它被调用的位置,并使用传递给它的参数删除/替换函数定义的任意参数名称?
我对程序流程的理解很简单。函数及其相关指令位于内存中的某个位置。这个内存位置是用于存储这些指令的唯一位置。当调用时,该函数第一个指令的位置被存储在程序流中。这个内存指针指示CPU在内存中查找所需函数的指令的位置。跳转到这个位置并执行指令后,恢复正常的程序流,并将CPU跳回到原始地址指令所在的位置,继续执行后续指令。
我理解内联函数是直接粘贴到它们被调用的位置中的。因此,当编写源文件并定义内联函数时,实际上存在多个内存位置,其中包含该函数的指令集(即它被调用的确切位置)。因此,可以说内联函数没有类似非内联函数的
source
内存位置吗?此外,在编译过程中,编译器是否只是将内联函数粘贴到它被调用的位置,并使用传递给它的参数删除/替换函数定义的任意参数名称?
inline
的作用只是提供一个提示,表明调用应该尽可能快。 - ldav1sregister
修饰符似乎是这样的。谢谢。 - sherrellbc