C++ function pointers

发布时间:2019-06-28 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了C++ function pointers脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Function pointers point to the address of the executable code of the function. You can use pointers to call functions and to pass functions as arguments to other functions.

Syntax

Declaration

A simple example:

void (*foo) (int)

A function pointer foo is declared in the above code, which can point to a function wITh an integer as argument and no return. It's as if you're declaring a function called *foo, which takes an int and returns void; now, if *foo is a function, then foo must be a pointer to a function. (Similarly, a declaration like int *x can be read as *x is an int, so x must be a pointer to an int.)

The key to writing the declaration for a function pointer is that you're just writing out the declaration of a function but with (*func_name) where you'd normally just put func_name.

Initialization

To initialize a function pointer, you must give it the address of a function in your PRogram.

void print(int x){
    printf( "%dn", x );
}

int main(){
    // 1. declaration + initialization
    void (*foo)(int) = & print; 
    // 2. declaration; initialization
    void (*foo_2)(int);
    foo_2 = & print;
    // 3. tyPEdef
    typedef void(*printInt)(int);
    printInt foo_3 = & print;
    return 0;
}

Méthode d'@R_512_1225@

The function pointer is similar to the array. where a bare array decays to a pointer, but you may also prefix the array with & to request its address.

foo(2);
(*foo)(10);

脚本宝典总结

以上是脚本宝典为你收集整理的C++ function pointers全部内容,希望文章能够帮你解决C++ function pointers所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。