तो मैं हेड फर्स्ट सी में साथ चल रहा हूं और हम एक अध्याय पर हैं जहां हम एक साथ कई फाइलों को संकलित करना सीखते हैं। उनमें से एक encrypt.c
है।मुझे उसी नाम की .c फ़ाइल में .h हेडर फ़ाइल क्यों शामिल करने की आवश्यकता है?
#include "encrypt.h"
void encrypt(char *message)
{
char c;
while (*message) {
*message = *message^31;
message++;
}
}
encrypt.h
फ़ाइल अंत में अर्धविराम से पहली पंक्ति को दोहराता है, तो क्यों मैं इसे ज़रूरत है? मैं समझता हूं कि इसे परिभाषित करने से पहले किसी फ़ंक्शन का उपयोग करने की समस्या को ठीक करने के लिए मुझे हेडर फ़ाइलों की आवश्यकता क्यों होगी, इसलिए मैं इसे encrypt.c
का उपयोग करने वाली फ़ाइल में शामिल कर सकता हूं, लेकिन मुझे encrypt.c
के अंदर इसकी आवश्यकता क्यों होगी? क्या यह सिर्फ उन कारणों में से एक है?
आप इसे परिभाषित करने से पहले किसी फ़ंक्शन का उपयोग नहीं कर सकते हैं। आप फ़ंक्शन के लिए हेडर घोषित कर सकते हैं और फिर इसे परिभाषित करने के बाद इसका उपयोग कर सकते हैं। लेकिन एक हेडर फ़ाइल आपको सुपरसियर प्रदान नहीं करती है जिससे यह आपको अविकसित फ़ंक्शन का उपयोग करने की अनुमति देती है। – smac89
इस विशेष उदाहरण में प्रासंगिक नहीं है, लेकिन हेडर फाइलें अक्सर 'टाइपपीफ' और 'स्ट्रक्चर' और सभी प्रकार की चीजों को परिभाषित करती हैं जो उस शीर्षलेख में घोषित फ़ंक्शंस का उपयोग करना चाहती हैं। –
मेरे पास कुछ अन्य भी हैं। इस पुस्तक में दोष हैं लेकिन वे सभी करते हैं। – punstress