C语言中,函数和函数指针,效率上差很多吗?
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/18 21:04:32
C语言中,函数和函数指针,效率上差很多吗?
使用函数的时候,我用debug查看汇编码,用的是call 函数入口地址,用函数指针的汇编码为call si,其中si中存放的就是函数入口地址.
这两种形式上的,在效率上差别很大吗?
使用函数的时候,我用debug查看汇编码,用的是call 函数入口地址,用函数指针的汇编码为call si,其中si中存放的就是函数入口地址.
这两种形式上的,在效率上差别很大吗?
1.直接调用函数,编译的时候,被调函数的地址(或偏移)直接写入指令;
2.使用函数指针时,运行期从内存中取地址,在使用call指令
理论上,这存在效率差异.
根据你的系统环境:服务器、PC还是嵌入式处理器、单片机等,及你的代码的时间敏感程度:如时序严格的驱动还是MS,等等因素,自己可以判断使用.还有一点需要强调:使用函数指针是为了获得某种灵活或模型(C++编译器内部大量使用函数指针),所以,这是一种平衡.
2.使用函数指针时,运行期从内存中取地址,在使用call指令
理论上,这存在效率差异.
根据你的系统环境:服务器、PC还是嵌入式处理器、单片机等,及你的代码的时间敏感程度:如时序严格的驱动还是MS,等等因素,自己可以判断使用.还有一点需要强调:使用函数指针是为了获得某种灵活或模型(C++编译器内部大量使用函数指针),所以,这是一种平衡.
C语言中,函数和函数指针,效率上差很多吗?
C语言中的函数指针和指针函数怎么理解?
C语言中,指针型函数和函数型指针的区别
求破C语言用指针和函数求转置矩阵
在C语言中指针函数*p=&q,“*”和“&”什么作用?
c语言指针问题,输入函数中*p和p的区别
C语言中指针变量作函数参数,为什么要在main函数里加上void swap(int *p1,int *p2);
在C语言中函数类型的指针有什么作用
C语言 指针函数 函数指针 什么区别联系?最好有例子?
C语言中怎样用POW函数和POW10函数
C语言中函数和函数体的区别是什么?
C语言:在主函数中输入x,y,调用函数求出X,y的和,差,商,积,并在主函数中对他们输出