- #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==