相关疑难解决方法(0)

如何解除引用函数指针?

为什么以及如何解除引用函数指针只是"什么都不做"?

这就是我所说的:

#include<stdio.h>

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

int main(void) { 
    (*****hello)(); 
}
Run Code Online (Sandbox Code Playgroud)

来自这里的评论:

函数指针解除引用就好了,但生成的函数指示符会立即转换回函数指针


这里的答案:

解除引用(以你认为的方式)函数的指针意味着:访问CODE内存,因为它将是一个DATA内存.

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

我会使用"dereference"这个名字与"call"并排使用.没关系.

无论如何:C的设计方式是函数名称标识符和变量保持函数的指针都是相同的:地址到CODE内存.它允许通过在标识符或变量上使用call()语法来跳转到该内存.


如何准确地不提领一个函数指针的工作?

c c++ pointers function-pointers

66
推荐指数
2
解决办法
3万
查看次数

如何在没有解除引用的情况下调用指向函数的指针?

我在C++程序中有一个奇怪的typedef语句,由Py ++生成.

double radius(int);  // function to be wrapped
typedef double (*radius_function_type)(int);    
bp::def("radius", radius_function_type(&radius));   // bp::def is a function for wrapping
Run Code Online (Sandbox Code Playgroud)

到目前为止我想到的是上面的typedef statemnt不是那种类型,我们大多数人都熟悉,

typedef complex_type simple_alias;
Run Code Online (Sandbox Code Playgroud)

相反,它是一种声明指向函数的指针的方法,该函数将int作为参数并返回double(与原型相同).所以现在我的问题是,如何使用函数的地址作为参数来调用指向函数的指针(没有解除引用)?这也与原型不符.有人请解释一下!

c++ typedef function-pointers

1
推荐指数
1
解决办法
1822
查看次数

标签 统计

c++ ×2

function-pointers ×2

c ×1

pointers ×1

typedef ×1