Sabtu, 10 Desember 2011

Array Function Pointer

Masih di topik yang sama, yakni function pointer. Topik sekarang yakni Array Function Pointer, jadi Array  tersebut berisi fungsi - fungsi. Dari pada bak bik buk, langsung aja liat kodenya :

file functions.h :
#define pointer_functions

#ifdef pointer_functions
int sum (int a, int b);
int subtract (int a, int b);
int multiply (int a, int b);
int devide (int a, int b);

#endif

File functions.c :
#include <stdio.h>
#include <string.h>
#include "functions.h"

int sum (int a, int b) {
return a + b;
}

int subtract (int a, int b) {
return a - b;
}

int multiply (int a, int b) {
return a * b;
}

int devide (int a, int b) {
if ( b )
return a/b;
else
0;
}

File main.c
#include <stdio.h>
#include <string.h>
#include "functions.h"

void main() {
int a = 2;
int b = 4;
int ( *p [5] ) ( int , int ) = { sum,  subtract,  multiply,  devide };
int r;

r = p[0](a, b);

        printf("result %d\n", r);
}

hasil run :
result 6

Bisa dilihat kalau tiap fungsi yang ada di file functions.c dimasukin dalam array p, bisa dikatakan diregister ke dalam array tersebut. Kemudian dalam array tersebut bisa dipanggil. Kalau kurang jelas bisa dilihat di sini

Note : ini digunakan jika kita mempunyai fungsi yang sama, dan kita memiliki alur program yang sama sehingga hanya memanggil tiap fungsi tersebut sebagai menjadi per state.

Sekian, terima kasih :)

0 komentar:

Posting Komentar