在 C 语言中,如果我有一个函数指针
int (*f_ptr) (int)
它将在指令缓存中还是在数据缓存中?在这些缓存中找到 f_ptr
我不会感到惊讶。有一种方法可以在 Linux 下使用 perf
进行调试,有点像数据缓存、指令缓存和翻译后备缓冲区的鸟瞰图?
最佳答案
函数执行时,函数代码会进入指令缓存。
但我假设您正在谈论函数指针变量本身。由于它是一个变量,因此它最终会出现在数据缓存中。它只是一个包含地址的变量。简而言之,就是一个指针。
关于c - 函数指针属于哪个缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30785882/