C语言中,函数和函数指针,效率上差很多吗?使用函数的时候,我用debug查看汇编码,用的是call 函数入口地址,用函数指针的汇编码为call si,其中si中存放的就是函数入口地址.这两种形式上的,在效

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/19 10:40:52
C语言中,函数和函数指针,效率上差很多吗?使用函数的时候,我用debug查看汇编码,用的是call 函数入口地址,用函数指针的汇编码为call si,其中si中存放的就是函数入口地址.这两种形式上的,在效
xSn@3kD+U$mUE*TԽyhI.Bk )lxnv{Z*x;dZeԙ$x5ͷggCP@_]YAW@GM &Mz:)dZjeQQV 9[A?@0lxTǁp<wyu2 '7E  콣PI0k!?ڃ (^~JhC`wU+QeQ/I?C>_@ X5ǧ*A6qRb婻q\vk3*&{M2z2K1kݕ|PL5MԂ@s+Cx5LEFN`w=!h^!tt rCP>C~wWK=M$8F izVWmnf;1 jkÊ\Q

C语言中,函数和函数指针,效率上差很多吗?使用函数的时候,我用debug查看汇编码,用的是call 函数入口地址,用函数指针的汇编码为call si,其中si中存放的就是函数入口地址.这两种形式上的,在效
C语言中,函数和函数指针,效率上差很多吗?
使用函数的时候,我用debug查看汇编码,用的是call 函数入口地址,用函数指针的汇编码为call si,其中si中存放的就是函数入口地址.
这两种形式上的,在效率上差别很大吗?

C语言中,函数和函数指针,效率上差很多吗?使用函数的时候,我用debug查看汇编码,用的是call 函数入口地址,用函数指针的汇编码为call si,其中si中存放的就是函数入口地址.这两种形式上的,在效
1.直接调用函数,编译的时候,被调函数的地址(或偏移)直接写入指令;
2.使用函数指针时,运行期从内存中取地址,在使用call指令
理论上,这存在效率差异.
根据你的系统环境:服务器、PC还是嵌入式处理器、单片机等,及你的代码的时间敏感程度:如时序严格的驱动还是MS,等等因素,自己可以判断使用.还有一点需要强调:使用函数指针是为了获得某种灵活或模型(C++编译器内部大量使用函数指针),所以,这是一种平衡.