函数指针的解除引用如何发生?

问题描述 投票:68回答:5

为什么以及如何取消引用函数指针只是“什么都不做?”

这是我在说的:

#include<stdio.h>

void hello() { printf("hello"); }

int main(void) { 
    (*****hello)(); 
}

[来自here的评论:

函数指针取消引用只是很好,但是得到的功能指定人将立即转换回函数指针


并且从答案here

取消引用(以您的方式考虑)函数的指针意味着:访问一个代码存储器,因为它是数据内存。

函数指针不应该是以这种方式取消引用。相反,它被称为。

我将使用名称“取消引用”与“通话”并排。可以。

无论如何:C的设计方式这两个功能名称标识符为以及变量保持函数指针的含义相同:CODE的地址记忆。它可以跳转到通过使用call()语法存储在标识符或变量上。


<如何解除对函数指针的引用?

为什么以及如何取消引用函数指针只是“什么都不做?”?这就是我在说的:#include

void hello(){printf(“ hello”); } int main(void){(***** hello)(); ...

c++ c pointers function-pointers
5个回答
53
投票
这不是一个正确的问题。对于C,至少正确的问题是

7
投票
C ++ 03§4.3/ 1:

2
投票
[让您自己成为编译器作家。函数指针的含义很明确,它是指向表示机器代码的字节的blob的指针。

1
投票
函数指针的取消引用到底如何工作?

0
投票
[发生了一些隐式转换。实际上,按照C标准:
© www.soinside.com 2019 - 2024. All rights reserved.