Function Pointers
Ek function, ek variable ki tarah, ek address par rehta hai — aur C aap ko wo address ek pointer mein store karne deta hai. int (*operation)(int, int) operation ko do ints lene wale aur ek int return karne wale function ke pointer ke taur par declare karta hai; use ek function naam assign karna (call kiye baghair) us function ka address store kar deta hai.
#include <stdio.h>
int add(int a, int b) { return a + b; }
int subtract(int a, int b) { return a - b; }
int main() {
int (*operation)(int, int) = add;
printf("%d\n", operation(5, 3));
operation = subtract;
printf("%d\n", operation(5, 3));
return 0;
}8 2
operation(5, 3) call karna jo bhi function operation is waqt point kar raha hai use call karta hai — pehli baar add, reassignment ke baad subtract. Isi tarah C callbacks aur dynamic dispatch implement karta hai, bina is site ki doosri languages ke class ya interface machinery ke jo isi idea ke liye istemal hoti hai.
Aage: preprocessor — ek alag, purely textual pass jo compiler ke aap ka code dekhne se pehle run hota hai.
Practice exercise
Functions add(int,int) aur subtract(int,int) likhein. Ek function pointer declare karein jo add par initialize ho, use (5, 3) ke sath call karein aur result print karein.