个性化阅读
专注于IT技术分析

如何声明一个指向函数的指针?

好吧, 我们假设你知道C中的指针是什么意思。那么我们如何在C中创建一个指向整数的指针?

嗯..这很简单..

int * ptrInteger; /*We have put a * operator between int 
                    and ptrInteger to create a pointer.*/

这里ptrInteger是指向整数的指针。如果你了解这一点, 那么从逻辑上讲, 我们在声明指向函数的指针时应该没有任何问题problem

那么, 让我们首先看看..我们如何声明一个函数?例如,

int foo(int);

foo是一个返回int并接受一个int类型参数的函数。因此, 正如一个逻辑上的人会想到的那样, 通过在int和foo(int)之间放置一个*运算符应该创建一个指向函数的指针, 即

int * foo(int);

但是Oops..C运算符优先级在这里也起作用。因此, 在这种情况下, operator()将优先于运算符*。上面的声明将意味着–一个函数foo, 它的一个参数为int类型, 返回值为int *, 即整数指针。所以它做了一些我们不想做的事情。 ?

因此, 作为下一步的逻辑步骤, 我们必须以某种方式将运算符*与foo绑定。为此, 我们将使用()运算符更改C运算符的默认优先级。

int (*foo)(int);

而已。这里*运算符与foo一起使用, foo是一个函数名。它做了我们想要做的事情。

因此, 这并不像我们早先想的那么困难!

赞(0)
未经允许不得转载:srcmini » 如何声明一个指向函数的指针?

评论 抢沙发

评论前必须登录!