#include <stdio.h>
int bounce(int a);
int caller (int(*function)(int), int b);
int main() {
int num;
int (*fptr) (int)=bounce;
num=(*fptr) (10);
printf("Returned value: %d \n", num
);
num=caller(fptr, 5);
printf("Returned value; %d \n", num
);
return 0;
}
int bounce(int a) {
printf("\n Received value: %d \n", a
); return ((3 * a) + 3);
}
int caller(int(*function)(int), int b) {
function(b);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgYm91bmNlKGludCBhKTsKaW50IGNhbGxlciAoaW50KCpmdW5jdGlvbikoaW50KSwgaW50IGIpOwoKCWludCBtYWluKCkgewoJCWludCBudW07CgkJaW50ICgqZnB0cikgKGludCk9Ym91bmNlOwoKCQludW09KCpmcHRyKSAoMTApOwoJCXByaW50ZigiUmV0dXJuZWQgdmFsdWU6ICVkIFxuIiwgbnVtKTsKCgkJbnVtPWNhbGxlcihmcHRyLCA1KTsKCQlwcmludGYoIlJldHVybmVkIHZhbHVlOyAlZCBcbiIsIG51bSk7CgoJCXJldHVybiAwOwoJfQoKCWludCBib3VuY2UoaW50IGEpIHsKCQlwcmludGYoIlxuIFJlY2VpdmVkIHZhbHVlOiAlZCBcbiIsIGEpOwoJCXJldHVybiAoKDMgKiBhKSArIDMpOwoJfQoKCWludCBjYWxsZXIoaW50KCpmdW5jdGlvbikoaW50KSwgaW50IGIpIHsKCQlmdW5jdGlvbihiKTsKCX0KCQ==