显式解引用

来源:互联网 发布:淘宝直邮是真的吗 编辑:程序博客网 时间:2024/06/05 09:24

这实际上会指定返回值的函数调用goo()到pfoo,这并不是我们想要的。我们希望pfoo被分配到功能良好,没有从goo()返回值。所以没有圆括号是必需的

请注意,签名(参数和返回值的函数指针必须)函数的签名匹配。这里是一个例子

1234567891011// function prototypesint foo();double goo();int hoo(int nX); // function pointer assignmentsint (*pFcn1)() = foo; // okayint (*pFcn2)() = goo; // wrong -- return types don't match!double (*pFcn3)() = goo; // okaypFcn1 = hoo; // wrong -- pFcn1 has no parameters, but hoo() doesint (*pFcn3)(int) = hoo; // okay

调用一个函数使用一个函数指针

你可以用一个函数指针的第二件事是用它来调用函数。有两种方法来做这个。首先是通过显式解引用

1234567int foo(int nX){} int (*pFoo)(int) = foo; // assign pFoo to foo() (*pFoo)(nValue); // call function foo(nValue) through pFoo.


0 0
原创粉丝点击