# फंक्शन प्रोटोटाइप — C प्रोग्रामिंग

Source: https://www.geekswithgeeks.com/hi/c/c-function-prototypes

> फंक्शन परिभाषित करने से पहले कंपाइलर को उसके बारे में बताएँ।

## प्रोटोटाइप क्यों?

C ऊपर से नीचे पढ़ता है। अगर `main` किसी ऐसे फंक्शन को कॉल करता है जो फाइल में बाद में परिभाषित है, तो कंपाइलर को पहले ही उसका **प्रोटोटाइप** — `;` पर खत्म होने वाला सिग्नेचर — चाहिए।

## पहले घोषणा, फिर परिभाषा

प्रोटोटाइप में पैरामीटर के नाम वैकल्पिक हैं और केवल दस्तावेज़ीकरण के लिए हैं।

```c
#include <stdio.h>

int square(int n);   // prototype

int main(void) {
    printf("%d\n", square(5));
    return 0;
}

int square(int n) {  // definition
    return n * n;
}
```

Output:

```
25
```

## हेडर फाइलें प्रोटोटाइप रखती हैं

`<stdio.h>` जैसी फाइलें दरअसल `printf` जैसे फंक्शनों के प्रोटोटाइप से भरी होती हैं, ताकि कंपाइलर लिंकिंग से पहले ही आपकी कॉल्स पर भरोसा कर सके।
