小编cyc*_*rel的帖子

C中的功能指针存储器说明

#include <stdio.h>
#include <stdlib.h>

int (*fptr1)(int);

int square(int num){
  return num*num;
}

void main(){
  fptr1 = &square;
  printf("%d\n",fptr1(5));
}
Run Code Online (Sandbox Code Playgroud)

当我们调用函数指针时,有人可以简要解释堆栈中发生的事情吗?直接在main()中调用函数和通过C语言中的函数指针通过物理内存和进程调用它有什么区别?

当我们用函数指针调用函数时,我试图理解内存中发生了什么,但这对我来说还不够.

  1. 当我们通过指针调用函数时,指针是否在代码空间中具有此函数的位置?
  2. 当被调用函数运行时,它与main()中通常称为函数的函数相同吗?
  3. 当代码在流水线分支预测处理器中运行时,直接调用函数或使用函数指针有什么区别?

c stack function-pointers

5
推荐指数
2
解决办法
2233
查看次数

标签 统计

c ×1

function-pointers ×1

stack ×1