pada contoh ini akan diperlihatkan contoh penggunakan function pointer untuk membuat sebuah mekanisme callback, pada contoh ini kita membuat sebuah fungsi pembagi dengan op1/op2, dimana kita harus mencegah op2=0
int bagi(int op1,int op2,bool (*fpTest)(int op1,int op2))
{
if(fpTest != NULL)
{
if(fpTest(op1,op2) == false)return -1;
}
return op1/op2;
}
bool Verifier(int op1,int op2)
{
if(op2==0)
{
printf("\nerror:Operand2 berisi 0 mengakibatkan division by zero");
return false;
}
if(op1 < op2)
{
printf("\nwarning:Operand1 < Operand2");
return true;
}
else return true;
}
int main(void)
{
printf("a) hasil 4/2 = %d",bagi(4,2,Verifier));
printf("b) hasil 4/0 = %d",bagi(4,0,Verifier));
printf("c) hasil 2/4 = %d",bagi(2,4,Verifier));
printf("d) hasil 2/4 = %d",bagi(2,4,NULL));
}
pada contoh diatas fungsi Verifier dikirimkan melalui argument dari fungsi bagi untuk digunakan sebagai verifier operand sebelum dilakukan operasi pembagian.
Bila operand dari operasi pembagian tidak valid maka fungsi verifier memberikan pesan dan me-return false agar fungsi bagi tidak melanjutkan operasi pembagian
Tidak ada komentar:
Posting Komentar