Function Pointer in C

Function Pointer 是C語言最重要的高等特色之一,最常見的例子就是 State Machine 的實作以及排序演算法的 compare function 輸入。下面的程式碼只是要記錄一個基本的用法,方便之後使用參考,畢竟從來沒用過(雖然知道很久了)。

#include <stdio.h>

int sum( int, int );
int sub( int, int );
int mul( int, int );
int mod( int, int );

int (*op[4]) ( int, int ) = { sum, sub, mul, mod };

int main()
{
....int a, b, i;

....a = 5;
....b = 3;

....for( i = 0 ; i < 4; i++ )
........printf("Operation %d result: %d\n", i, (*op[i])(a, b) );
....}

....return 0;
}

int sum( int a, int b ) { return a+b; }
int sub( int a, int b ) { return a-b; }
int mul( int a, int b ) { return a*b; }
int mod( int a, int b ) { return a%b; }

留言

這個網誌中的熱門文章

如何將Linux打造成OpenFlow Switch:Openvswitch

如何利用 Wireshark 來監聽 IEEE 802.11 的管理封包

我弟家的新居感恩禮拜分享:善頌善禱