【推荐】The Function Pointer Tutorials
在网上看到一个介绍函数指针的网站,对函数指针介绍的很详细,值得好好读读。
http://www.newty.de/ 网站也提供The Function Pointer Tutorials.pdf下载。
这里把目录列出来:
Contents
1 Introduction to Function Pointers 2
1.1 What is a Function Pointer ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Introductory Example or How to Replace a Switch-Statement . . . . . . . . . . . . . . . . . . . . 2
2 The Syntax of C and C++ Function Pointers 3
2.1 Define a Function Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Calling Convention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 Assign an Address to a Function Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4 Comparing Function Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.5 Calling a Function using a Function Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.6 How to Pass a Function Pointer as an Argument ? . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.7 How to Return a Function Pointer ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.8 How to Use Arrays of Function Pointers ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 How to Implement Callback Functions in C and C++ 7
3.1 Introduction to the Concept of Callback Functions . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2 How to Implement a Callback in C ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3 Example Code of the Usage of qsort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.4 How to Implement a Callback to a static C++ Member Function ? . . . . . . . . . . . . . . . . . 9
3.5 How to Implement a Callback to a non-static C++ Member Function ? . . . . . . . . . . . . . . 9
4 Functors to encapsulate C and C++ Function Pointers 11
4.1 What are Functors ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2 How to Implement Functors ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.3 Example of How to Use Functors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12