निर्देश शामिल करें: Difference between revisions

From Vigyanwiki
(Created page with "{{short description|Type of file in computer programming}} कई प्रोग्रामिंग भाषा और अन्य कंप्यूटर फाइ...")
 
No edit summary
 
(5 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{short description|Type of file in computer programming}}
{{short description|Type of file in computer programming}}
कई [[प्रोग्रामिंग भाषा]] और अन्य कंप्यूटर फाइलों में एक [[निर्देश (प्रोग्रामिंग)]] होता है, जिसे अक्सर कहा जाता है<code>include</code>(कभी-कभी<code>copy</code>या<code>import</code>), जो निर्दिष्ट फ़ाइल की सामग्री को मूल फ़ाइल में डालने का कारण बनता है। इन शामिल फ़ाइलों को कॉपीबुक या कहा जाता है{{vanchor|header file|HEADER_FILE}}एस। एक हजार से अधिक सी लाइब्रेरी फाइलें हैं और इन्हें अक्सर [[एनकैप्सुलेशन (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग)]] और कोड या डेटा के पुन: उपयोग को बढ़ावा देने के दौरान प्रोग्राम डेटा के भौतिक लेआउट, प्रक्रियात्मक कोड के टुकड़े, और/या [[आगे की घोषणा]]ओं को परिभाषित करने के लिए उपयोग किया जाता है।
कई [[प्रोग्रामिंग भाषाओं]] और अन्य कंप्यूटर फ़ाइलों में एक निर्देश होता है, जिसे प्रायः समावेशन (कभी-कभी प्रतिलिपि या आयात) कहा जाता है, जो निर्दिष्ट फ़ाइल की सामग्री को मूल फ़ाइल में डालने का कारण बनता है। इन [[समावेशित]] फाइलों को कॉपीबुक या [[हेडर फाइल]] कहा जाता है। वे प्रायः प्रोग्राम डेटा के भौतिक लेआउट, प्रक्रियात्मक कोड के टुकड़े, और / या आगे की घोषणाओं को [[संपुटीकरण]] को बढ़ावा देने और कोड या डेटा के पुन: उपयोग को परिभाषित करने के लिए उपयोग किए जाते हैं।


== हैडर फ़ाइलें ==
== हैडर फ़ाइलें ==
[[कंप्यूटर प्रोग्रामिंग]] में, एक हेडर फाइल एक फाइल है जो प्रोग्रामर को प्रोग्राम के स्रोत कोड के कुछ तत्वों को पुन: प्रयोज्य फाइलों में अलग करने की अनुमति देती है। शीर्षलेख फ़ाइलों में आमतौर पर [[कक्षा (कंप्यूटर विज्ञान)]] ईएस, [[सबरूटीन]]्स, [[चर (कंप्यूटर विज्ञान)]] और अन्य [[पहचानकर्ता]]ओं की आगे की घोषणाएं होती हैं। प्रोग्रामर जो एक से अधिक स्रोत फ़ाइल में मानकीकृत पहचानकर्ताओं की घोषणा करना चाहते हैं, वे ऐसे पहचानकर्ताओं को एक ही हेडर फ़ाइल में रख सकते हैं, जो हेडर सामग्री की आवश्यकता होने पर अन्य कोड शामिल कर सकते हैं। यह इंटरफ़ेस को हेडर में क्लास कार्यान्वयन फ़ाइल से अलग रखना है।
[[कंप्यूटर प्रोग्रामिंग]] में, एक हेडर फाइल एक फाइल है जो प्रोग्रामर को प्रोग्राम के स्रोत कोड के कुछ तत्वों को पुन: प्रयोज्य फाइलों में अलग करने की अनुमति देती है। शीर्षलेख फ़ाइलों में सामान्यतः  [[कक्षा (कंप्यूटर विज्ञान)|कक्षाओं(कंप्यूटर विज्ञान)]] ईएस, [[सबरूटीन|उपनेमिका]], [[चर (कंप्यूटर विज्ञान)]] और अन्य [[पहचानकर्ता]]ओं की आगे की घोषणाएं होती हैं। प्रोग्रामर जो एक से अधिक स्रोत फ़ाइल में मानकीकृत पहचानकर्ताओं की घोषणा करना चाहते हैं, वे ऐसे पहचानकर्ताओं को एक ही हेडर फ़ाइल में रख सकते हैं, जो हेडर सामग्री की आवश्यकता होने पर अन्य कोड सम्मिलित कर सकते हैं। यह हेडर में अंतराफलक को कार्यान्वयन से अलग रखने के लिए है। <ref>
<ref>
{{cite web
{{cite web
| accessdate = 2013-05-07
| accessdate = 2013-05-07
Line 13: Line 12:
| url        = http://accu.org/index.php/journals/269
| url        = http://accu.org/index.php/journals/269
}}
}}
</ref> [[सी मानक पुस्तकालय]] और [[सी ++ मानक पुस्तकालय]] पारंपरिक रूप से हेडर फाइलों में अपने मानक कार्यों की घोषणा करते हैं।
</ref>


कुछ हाल ही में संकलित भाषाएँ (जैसे [[जावा (प्रोग्रामिंग भाषा)]], सी शार्प (प्रोग्रामिंग भाषा) | सी #) आगे की घोषणाओं का उपयोग नहीं करती हैं; पहचानकर्ताओं को स्वचालित रूप से स्रोत फ़ाइलों से पहचाना जाता है और [[गतिशील पुस्तकालय]] प्रतीकों से सीधे पढ़ा जाता है। इसका मतलब है कि हेडर फाइलों की जरूरत नहीं है।
[[C मानक पुस्तकालय]] और [[C ++ मानक पुस्तकालय]] पारंपरिक रूप से हेडर फाइलों में अपने मानक कार्यों की घोषणा करते हैं।
 
कुछ हाल ही में बनाई गई संकलित भाषाएँ (जैसे जावा, C #) आगे की घोषणाओं का उपयोग नहीं करती हैं; पहचानकर्ताओं को स्वचालित रूप से स्रोत फ़ाइलों से पहचाना जाता है और गतिशील पुस्तकालय प्रतीकों से सीधे पढ़ा जाता है। इसका मतलब है कि हेडर फाइलों की जरूरत नहीं है।


== उद्देश्य ==
== उद्देश्य ==


<code>include</code>निर्देश कोड के पुस्तकालय (कंप्यूटिंग) को विकसित करने की अनुमति देता है जो मदद करता है:
<code>समावेशन</code>निर्देश कोड के पुस्तकालय (कंप्यूटिंग) को विकसित करने की अनुमति देता है जो मदद करता है:
* सुनिश्चित करें कि हर कोई एक कार्यक्रम के दौरान डेटा लेआउट परिभाषा या प्रक्रियात्मक कोड के समान संस्करण का उपयोग करता है,
* सुनिश्चित करें कि हर कोई एक कार्यक्रम के दौरान डेटा लेआउट परिभाषा या प्रक्रियात्मक कोड के समान संस्करण का उपयोग करता है,
* आसानी से क्रॉस-रेफरेंस जहां सिस्टम में घटकों का उपयोग किया जाता है,
* आसानी से प्रति निर्देश देना जहां सिस्टम में घटकों का उपयोग किया जाता है,
* जरूरत पड़ने पर आसानी से प्रोग्राम बदलें (केवल एक फाइल को संपादित किया जाना चाहिए), और
* जरूरत पड़ने पर आसानी से प्रोग्राम बदलें (केवल एक फाइल को संपादित किया जाना चाहिए), और
* डेटा लेआउट का पुन: उपयोग करके समय बचाएं।
* डेटा लेआउट का पुन: उपयोग करके समय बचाएं।
Line 27: Line 28:
=== उदाहरण ===
=== उदाहरण ===


एक उदाहरण स्थिति जो एक शामिल निर्देश के उपयोग से लाभान्वित होती है, जब किसी भिन्न फ़ाइल में फ़ंक्शंस का संदर्भ दिया जाता है। मान लीजिए कि कुछ [[सी (प्रोग्रामिंग भाषा)]] स्रोत फ़ाइल है जिसमें फ़ंक्शन है <code>add</code>, जिसे पहली बार इसके बाहरी अस्तित्व और प्रकार (एक [[फ़ंक्शन प्रोटोटाइप]] के साथ) की घोषणा करके दूसरी फ़ाइल में संदर्भित किया जाता है:
एक उदाहरण स्थिति जो एक समावेशित निर्देश के उपयोग से लाभान्वित होती है, जब किसी भिन्न फ़ाइल में फ़ंक्शंस का संदर्भ दिया जाता है। मान लीजिए कि कुछ [[सी (प्रोग्रामिंग भाषा)|C(प्रोग्रामिंग भाषा)]] स्रोत फ़ाइल है जिसमें फलन ऐड है, जिसे पहली बार इसके बाहरी अस्तित्व और प्रकार (एक [[फ़ंक्शन प्रोटोटाइप|फलन]] प्रतिमान  के साथ) की घोषणा करके दूसरी फ़ाइल में संदर्भित किया जाता है:
<वाक्यविन्यास लैंग = सी>
 
इंट ऐड (इंट, इंट);
<syntaxhighlight lang="C">
int add(int, int);


इंट ट्रिपल (इंट एक्स)
int triple(int x)
{
{
     रिटर्न ऐड (एक्स, ऐड (एक्स, एक्स));
     return add(x, add(x, x));
}
}
</वाक्यविन्यास हाइलाइट>
</syntaxhighlight>


इस दृष्टिकोण का एक दोष यह है कि फ़ंक्शन प्रोटोटाइप फ़ंक्शन का उपयोग करने वाली सभी फ़ाइलों में मौजूद होना चाहिए। एक और दोष यह है कि यदि रिटर्न प्रकार या फ़ंक्शन के तर्क बदल दिए जाते हैं, तो इन सभी प्रोटोटाइपों को अद्यतन करने की आवश्यकता होगी। प्रोटोटाइप को एक सिंगल, अलग फाइल में रखने से इन मुद्दों से बचा जा सकता है। प्रोटोटाइप मानते हुए फ़ाइल में ले जाया गया है <code>add.h</code>, दूसरी स्रोत फ़ाइल तब बन सकती है:
इस दृष्टिकोण का एक अवगुण यह है कि फलन प्रतिमान  फलन का उपयोग करने वाली सभी फ़ाइलों में उपस्थित होना चाहिए। एक और अवगुण यह है कि यदि रिटर्न प्रकार या फलन के तर्क बदल दिए जाते हैं, तो इन सभी प्रोटोटाइपों को अद्यतन करने की आवश्यकता होगी। प्रतिमान  को एक सिंगल, अलग फाइल में रखने से इन मुद्दों से बचा जा सकता है। प्रतिमान  मानते हुए फ़ाइल add.h में ले जाया गया है, तब दूसरी स्रोत फ़ाइल बन सकती है:
<वाक्यविन्यास लैंग = सी>
<syntaxhighlight lang="C">
#शामिल ऐड.एच
#include "add.h"


इंट ट्रिपल (इंट एक्स)
int triple(int x)
{
{
     रिटर्न ऐड (एक्स, ऐड (एक्स, एक्स));
     return add(x, add(x,x));
}
}
</वाक्यविन्यास हाइलाइट>
</syntaxhighlight>
 
अब, हर बार जब कोड संकलित किया जाता है, नवीनतम फलन प्रतिमान  में <code>add.h</code> संभावित त्रुटियों से बचने के लिए उनका उपयोग करते हुए फाइलों में सम्मिलित किया जाएगा।
 
 
 
 
 
 
 
 
 
 


अब, हर बार कोड संकलित किया जाता है, नवीनतम फ़ंक्शन प्रोटोटाइप में <code>add.h</code> संभावित त्रुटियों से बचने के लिए उनका उपयोग करते हुए फाइलों में शामिल किया जाएगा।


== भाषा समर्थन ==
== भाषा समर्थन ==


=== सी/[[सी ++]] ===
=== C/C++ ===


C (प्रोग्रामिंग भाषा) और C++ प्रोग्रामिंग भाषाओं में, <code>#include</code> निर्देश (प्रोग्रामिंग) [[संकलक]] को उस पंक्ति को नामित स्रोत फ़ाइल की सामग्री के पूरे पाठ के साथ बदलने का कारण बनता है (यदि उद्धरण में शामिल है:) या नामित हेडर (यदि कोण कोष्ठक में शामिल है: <>);<ref>C11 standard, 6.10.2 Source file inclusion, pp. 164–165</ref> ध्यान दें कि शीर्षलेख को स्रोत फ़ाइल होने की आवश्यकता नहीं है।<ref>C11 standard, 7.1.2 Standard headers, p. 181, footnote 182: "A header is not necessarily a source file, nor are the <code>&lt;</code> and <code>&gt;</code> delimited sequences in header names necessarily valid source file names.</ref> कार्यान्वयन-परिभाषित नेस्टिंग सीमा तक, इन सम्मिलित सामग्रियों पर समावेशन पुनरावर्ती रूप से जारी रहता है। शीर्षलेखों के पास फ़ाइलों से संबंधित नामों की आवश्यकता नहीं है: सी ++ मानक शीर्षलेखों में आमतौर पर वेक्टर जैसे शब्दों के साथ पहचाने जाते हैं <code>#include &lt;vector&gt;</code>, जबकि C मानक हेडर में .h एक्सटेंशन के साथ फ़ाइल नाम के रूप में पहचानकर्ता होते हैं, जैसे कि <code>#include &lt;stdio.h&gt;</code>. एक स्रोत फ़ाइल कोई भी फ़ाइल हो सकती है, किसी भी रूप के नाम के साथ, लेकिन आमतौर पर इसे .h एक्सटेंशन के साथ नामित किया जाता है और इसे हेडर फ़ाइल (कभी-कभी .hpp या .hh C++ हेडर को अलग करने के लिए) कहा जाता है, हालाँकि .c, . cc, और .cpp एक्सटेंशन भी शामिल हो सकते हैं (विशेष रूप से [[एकल संकलन इकाई]] तकनीक में), और कभी-कभी अन्य एक्सटेंशन का उपयोग किया जाता है।
C (प्रोग्रामिंग भाषा) और C++ प्रोग्रामिंग भाषाओं में, <code>#include</code> निर्देश (प्रोग्रामिंग) [[संकलक]] को उस पंक्ति को नामित स्रोत फ़ाइल की सामग्री के पूरे पाठ्य भाग के साथ बदलने का कारण बनता है (यदि उद्धरण में सम्मिलित है:) या नामित हेडर (यदि कोण कोष्ठक में सम्मिलित है: <>);<ref>C11 standard, 6.10.2 Source file inclusion, pp. 164–165</ref> ध्यान दें कि शीर्षलेख को स्रोत फ़ाइल होने की आवश्यकता नहीं है।<ref>C11 standard, 7.1.2 Standard headers, p. 181, footnote 182: "A header is not necessarily a source file, nor are the <code>&lt;</code> and <code>&gt;</code> delimited sequences in header names necessarily valid source file names.</ref> कार्यान्वयन-परिभाषित नेस्टिंग सीमा तक, इन सम्मिलित सामग्रियों पर समावेशन पुनरावर्ती रूप से जारी रहता है। शीर्षलेखों के पास फ़ाइलों से संबंधित नामों की आवश्यकता नहीं है: C++ मानक शीर्षलेखों में सामान्यतः वेक्टर जैसे शब्दों के साथ पहचाने जाते हैं इसलिए<code>#include &lt;vector&gt;</code>, जबकि C मानक हेडर में ".h" विस्तारण के साथ फ़ाइल नाम के रूप में पहचानकर्ता होते हैं, जैसे कि <code>#include &lt;stdio.h&gt;</code>. एक स्रोत फ़ाइल कोई भी फ़ाइल हो सकती है, किसी भी रूप के नाम के साथ, लेकिन सामान्यतः  इसे .h विस्तारण के साथ नामित किया जाता है और इसे हेडर फ़ाइल (कभी-कभी .hpp या .hh C++ हेडर को अलग करने के लिए) कहा जाता है, हालाँकि .c, . cc, और .cpp विस्तारण भी सम्मिलित हो सकते हैं (विशेष रूप से [[एकल संकलन इकाई]] तकनीक में), और कभी-कभी अन्य विस्तारण का उपयोग किया जाता है।


इन दो रूपों <code>#include</code> निर्देश यह निर्धारित कर सकता है कि कार्यान्वयन-परिभाषित तरीके से कौन सी शीर्षलेख या स्रोत फ़ाइल शामिल की जाए। व्यवहार में, आमतौर पर यह किया जाता है कि कोण-कोष्ठक एक मानक सिस्टम निर्देशिका (या निर्देशिकाओं के सेट) में स्रोत फ़ाइलों की खोज करता है, और फिर स्थानीय या प्रोजेक्ट-विशिष्ट पथों में स्रोत फ़ाइलों की खोज करता है (कमांड लाइन पर निर्दिष्ट, एक पर्यावरण चर में, या [[मेकफाइल]] या अन्य बिल्ड फ़ाइल में), जबकि उद्धरण के साथ फॉर्म मानक सिस्टम निर्देशिका में नहीं खोजता है, केवल स्थानीय या प्रोजेक्ट-विशिष्ट पथों में खोज करता है।<ref>{{cite web | url=http://docs.freebsd.org/info/cpp/cpp.pdf | title=The C Preprocessor | date=July 1992 | access-date=19 February 2014 | archive-url=https://web.archive.org/web/20120904041038/http://docs.freebsd.org/info/cpp/cpp.pdf | archive-date=4 September 2012 | url-status=dead | last=Stallman | first=Richard M. | author-link=Richard Stallman}}</ref> यदि कोई टकराव नहीं होता है, तो कोण-कोष्ठक प्रपत्र का उपयोग परियोजना-विशिष्ट शामिल निर्दिष्ट करने के लिए भी किया जा सकता है, लेकिन इसे खराब रूप माना जाता है। तथ्य यह है कि शीर्षलेखों को फाइलों से मेल खाने की आवश्यकता नहीं है, मुख्य रूप से एक कार्यान्वयन तकनीकीता है, और इसका उपयोग सी ++ मानक शीर्षलेखों सहित .h एक्सटेंशन को छोड़ने के लिए किया जाता है; सामान्य उपयोग में, हेडर का अर्थ है हेडर फ़ाइल।
समावेशित निर्देश के ये दो रूप यह निर्धारित कर सकते हैं कि कार्यान्वयन-परिभाषित तरीके से किस हेडर या स्रोत फ़ाइल को सम्मिलित किया जाए। C++ एक सामान्य उद्देश्य, केस-संवेदी, फ्री-फ़ॉर्म प्रोग्रामिंग भाषा है जो ऑब्जेक्ट-ओरिएंटेड, प्रक्रियात्मक और सामान्य प्रोग्रामिंग का समर्थन करती है। व्यवहार में, सामान्यतः  यह किया जाता है कि कोण-कोष्ठक एक मानक सिस्टम निर्देशिका (या निर्देशिकाओं के सेट) में स्रोत फ़ाइलों की खोज करता है, और फिर स्थानीय या प्रोजेक्ट-विशिष्ट पथों में स्रोत फ़ाइलों की खोज करता है (कमांड लाइन पर निर्दिष्ट, एक पर्यावरण चर में, या [[मेकफाइल]] या अन्य बिल्ड फ़ाइल में), जबकि उद्धरण के साथ फॉर्म मानक सिस्टम निर्देशिका में नहीं खोजता है, केवल स्थानीय या प्रोजेक्ट-विशिष्ट पथों में खोज करता है।<ref>{{cite web | url=http://docs.freebsd.org/info/cpp/cpp.pdf | title=The C Preprocessor | date=July 1992 | access-date=19 February 2014 | archive-url=https://web.archive.org/web/20120904041038/http://docs.freebsd.org/info/cpp/cpp.pdf | archive-date=4 September 2012 | url-status=dead | last=Stallman | first=Richard M. | author-link=Richard Stallman}}</ref> यदि कोई टकराव नहीं होता है, तो कोण-कोष्ठक प्रपत्र का उपयोग परियोजना-विशिष्ट सम्मिलित निर्दिष्ट करने के लिए भी किया जा सकता है, लेकिन इसे खराब रूप माना जाता है। तथ्य यह है कि शीर्षलेखों को फाइलों से मेल खाने की आवश्यकता नहीं है, मुख्य रूप से एक कार्यान्वयन तकनीकीता है, और इसका उपयोग C++ मानक शीर्षलेखों सहित .h विस्तारण को छोड़ने के लिए किया जाता है; सामान्य उपयोग में, हेडर का अर्थ है हेडर फ़ाइल।


उदाहरण के लिए:
उदाहरण के लिए:
<वाक्यविन्यास लैंग = सीपीपी>
#शामिल <stdio.h> // मानक हेडर 'stdio.h' (शायद एक फ़ाइल 'stdio.h') की सामग्री शामिल करें।
#शामिल <वेक्टर> // मानक हेडर 'वेक्टर' की सामग्री शामिल करें (शायद एक फ़ाइल 'वेक्टर.एच')।
#include user_defined.h // फ़ाइल 'user_defined.h' की सामग्री शामिल करें।
</वाक्यविन्यास हाइलाइट>


सी और सी ++ में, दो (या अधिक) फ़ाइलों में एक ही तीसरी फ़ाइल शामिल होने पर समस्याओं का सामना करना पड़ सकता है। एक समाधान यह है कि किसी भी अन्य फ़ाइलों को शामिल करने से फ़ाइलों को शामिल करने से बचें, संभवतः प्रोग्रामर को मैन्युअल रूप से अतिरिक्त जोड़ने के लिए मूल फ़ाइल में निर्देश शामिल करने की आवश्यकता होती है। एक अन्य समाधान का उपयोग गार्ड शामिल करना है।<ref>{{citation
<syntaxhighlight lang="cpp">
#include <stdio.h>  // Include the contents of the standard header 'stdio.h' (probably a file 'stdio.h').
#include <vector>  // Include the contents of the standard header 'vector' (probably a file 'vector.h').
#include "user_defined.h"  // Include the contents of the file 'user_defined.h'.
</syntaxhighlight>
 
Cऔर C++ में, दो (या अधिक) फ़ाइलों में एक ही तीसरी फ़ाइल सम्मिलित होने पर समस्याओं का सामना करना पड़ सकता है। एक समाधान यह है कि किसी भी अन्य फ़ाइलों को सम्मिलित करने से फ़ाइलों को सम्मिलित करने से बचें, संभवतः प्रोग्रामर को मैन्युअल रूप से अतिरिक्त जोड़ने के लिए मूल फ़ाइल में निर्देश सम्मिलित करने की आवश्यकता होती है। एक अन्य समाधान का उपयोग गार्ड सम्मिलित करना है।<ref>{{citation
| last=Pike | first=Rob | author-link=Rob Pike | date=21 Feb 1989 | title=Notes on programming in C | publisher=Cat-v document archive | url=http://doc.cat-v.org/bell_labs/pikestyle | access-date=9 Dec 2011
| last=Pike | first=Rob | author-link=Rob Pike | date=21 Feb 1989 | title=Notes on programming in C | publisher=Cat-v document archive | url=http://doc.cat-v.org/bell_labs/pikestyle | access-date=9 Dec 2011
}}</ref>
}}</ref>




=== [[कोबोल]] ===
=== [[कोबोल]] ===


COBOL (और [[आरपीजी चतुर्थ]] भी) प्रोग्रामर्स को कॉपीबुक्स को प्रोग्राम के स्रोत में हेडर फाइलों के समान तरीके से कॉपी करने की अनुमति देता है, लेकिन यह अन्य टेक्स्ट के साथ उनमें कुछ टेक्स्ट के प्रतिस्थापन की भी अनुमति देता है। समावेशन के लिए COBOL कीवर्ड है <code>COPY</code>, और प्रतिस्थापन का उपयोग करके किया जाता है <code>REPLACING ... BY ...</code> खंड। COBOL 60 के बाद से COBOL में एक शामिल निर्देश मौजूद है, लेकिन मूल से बदल दिया गया है <code>INCLUDE</code><ref>{{cite web | url=http://bitsavers.trailing-edge.com/pdf/codasyl/COBOL_Report_Apr60.pdf | title=COBOL Initial Specifications for a COmmon Business Oriented Language | publisher=[[United States Department of Defense|Department of Defense]] | date=April 1960 | access-date=11 February 2014 | url-status=dead | archive-url=https://web.archive.org/web/20140212200223/http://bitsavers.trailing-edge.com/pdf/codasyl/COBOL_Report_Apr60.pdf | archive-date=12 February 2014 | page=IX-9 }}</ref> को <code>COPY</code> 1968 तक।<ref>{{cite book | url=https://archive.org/details/codasylcoboljour00conf | title=CODASYL COBOL Journal of Development 1968 |date=July 1969 | section=The COPY Statement | lccn=73601243 }}</ref>
[[कोबोल]] (और [[आरपीजी चतुर्थ]] भी) प्रोग्रामर्स को कॉपीबुक्स को प्रोग्राम के स्रोत में हेडर फाइलों के समान तरीके से कॉपी करने की अनुमति देता है, लेकिन यह अन्य टेक्स्ट के साथ उनमें कुछ टेक्स्ट के प्रतिस्थापन की भी अनुमति देता है। कोबोल का मतलब कॉमन बिजनेस ओरिएंटेड भाषा है। अमेरिकी रक्षा विभाग ने एक सम्मेलन में, व्यापार डेटा प्रोसेसिंग जरूरतों के लिए एक भाषा विकसित करने के लिए  कोडासिल (डेटा सिस्टम्स भाषा पर सम्मेलन) का गठन किया, जिसे अबकोबोल के रूप में जाना जाता है।
 
कोबोल  का उपयोग एप्लिकेशन प्रोग्राम लिखने के लिए किया जाता है और हम इसका उपयोग सिस्टम सॉफ्टवेयर लिखने के लिए नहीं कर सकते हैं। रक्षा डोमेन, बीमा डोमेन आदि जैसे अनुप्रयोग जिनके लिए विशाल डेटा प्रोसेसिंग की आवश्यकता होती है,कोबोल का व्यापक उपयोग करते हैं।समावेशन के लिए  कोबोल कीवर्ड है <code>COPY</code>, और प्रतिस्थापन<code>REPLACING ... BY ...</code> खंड का उपयोग करके किया जाता है।  कोबोल 60 के बाद से कोबोल में एक सम्मिलित निर्देश उपस्थित है, लेकिन 1968 तक मूल INCLUDE[6] से COPY में बदल गया। <ref>{{cite book | url=https://archive.org/details/codasylcoboljour00conf | title=CODASYL COBOL Journal of Development 1968 |date=July 1969 | section=The COPY Statement | lccn=73601243 }}</ref>




=== [[फोरट्रान]] ===
=== [[फोरट्रान]] ===
फोरट्रान को प्रति हेडर फाइलों की आवश्यकता नहीं है। हालाँकि, फोरट्रान 90 और बाद में दो संबंधित विशेषताएं हैं: <code>include</code> बयान और मॉड्यूल। पूर्व का उपयोग सी हेडर की तरह प्रक्रिया इंटरफेस वाली एक सामान्य फ़ाइल को साझा करने के लिए किया जा सकता है, हालांकि फोरट्रान प्रक्रियाओं की सभी किस्मों के लिए इंटरफ़ेस के विनिर्देश की आवश्यकता नहीं है। इस दृष्टिकोण का आमतौर पर उपयोग नहीं किया जाता है; इसके बजाय, प्रक्रियाओं को आम तौर पर मॉड्यूल में समूहीकृत किया जाता है जिसे बाद में संदर्भित किया जा सकता है <code>use</code> कोड के अन्य क्षेत्रों के भीतर बयान। मॉड्यूल के लिए, हेडर-प्रकार की इंटरफ़ेस जानकारी स्वचालित रूप से संकलक द्वारा उत्पन्न होती है और आमतौर पर अलग-अलग मॉड्यूल फ़ाइलों में डाल दी जाती है, हालांकि कुछ कंपाइलरों ने इस जानकारी को सीधे ऑब्जेक्ट फ़ाइलों में रखा है। भाषा विनिर्देश स्वयं किसी भी अतिरिक्त फाइल के निर्माण को अनिवार्य नहीं करता है, भले ही मॉड्यूल प्रक्रिया इंटरफेस इस तरह से लगभग सार्वभौमिक रूप से प्रचारित हो।
फोरट्रान को प्रति हेडर फाइलों की आवश्यकता नहीं है। हालाँकि, [[फोरट्रान 90]] और बाद में दो संबंधित विशेषताएं हैं: बयान और मॉड्यूल सम्मिलित हैं। पूर्व का उपयोग सी हेडर की तरह प्रक्रिया इंटरफेस वाली एक सामान्य फ़ाइल को साझा करने के लिए किया जा सकता है, हालांकि [[फोरट्रान]] प्रक्रियाओं की सभी किस्मों के लिए इंटरफ़ेस के विनिर्देश की आवश्यकता नहीं है। इस दृष्टिकोण का सामान्यतः उपयोग नहीं किया जाता है; इसके अतिरिक्त , प्रक्रियाओं को सामान्यतः पर मॉड्यूल में समूहीकृत किया जाता है जिसे कोड के अन्य क्षेत्रों के भीतर उपयोग कथन के साथ संदर्भित किया जा सकता है। मॉड्यूल के लिए, हेडर-प्रकार की इंटरफ़ेस जानकारी स्वचालित रूप से संकलक द्वारा उत्पन्न होती है और सामान्यतः अलग-अलग मॉड्यूल फ़ाइलों में डाल दी जाती है, हालांकि कुछ कंपाइलरों ने इस जानकारी को सीधे ऑब्जेक्ट फ़ाइलों में रखा है। फोरट्रान परिपक्व है और सक्रिय विकास के अधीन है। भाषा का नवीनतम संशोधन फोरट्रान 2018 है। अगला संशोधन, फोरट्रान 2023, 2023 में जारी करने की योजना है। एक दर्जन से अधिक ओपन सोर्स और मालिकाना फोरट्रान कंपाइलर हैं। इसके अलावा, स्टैंडर्ड लाइब्रेरी और फोरट्रान पैकेज मैनेजर जैसे ओपन सोर्स प्रोजेक्ट सक्रिय विकास के अधीन हैं। भाषा विनिर्देश स्वयं किसी भी अतिरिक्त फाइल के निर्माण को अनिवार्य नहीं करता है, भले ही मॉड्यूल प्रक्रिया इंटरफेस इस तरह से लगभग सार्वभौमिक रूप से प्रचारित हो।


=== पास्कल ===
=== पास्कल ===
Line 84: Line 110:
* <code>{$include ''filename.inc''}</code>
* <code>{$include ''filename.inc''}</code>
* <code>(*INCLUDE ''filename.pas''*)</code>
* <code>(*INCLUDE ''filename.pas''*)</code>
जहां <code>$i</code> या <code>$include</code> निर्देश [[मामले की संवेदनशीलता]] नहीं है, और filename.pas या filename.inc शामिल की जाने वाली फ़ाइल का नाम है। (पास्कल की शामिल फ़ाइलों को [[फ़ाइल नाम एक्सटेंशन]] '.inc' के साथ नाम देना आम बात रही है, लेकिन इसकी आवश्यकता नहीं है।) कुछ संकलक, wikt:crock पुनरावर्तन को रोकने के लिए, एक निश्चित संख्या में फ़ाइल को शामिल करने को सीमित करते हैं, स्वयं को लागू करने पर रोक लगाते हैं। या कोई भी वर्तमान में खुली फ़ाइल, या एक समय में अधिकतम एक फ़ाइल शामिल करने तक सीमित है, उदा। एक शामिल फ़ाइल में खुद को या किसी अन्य फ़ाइल को शामिल नहीं किया जा सकता है। हालाँकि, प्रोग्राम जिसमें अन्य फ़ाइलें शामिल हैं, उनमें एक समय में केवल एक, कई शामिल हो सकते हैं।
जहां <code>$i</code> या <code>$include</code> निर्देश [[मामले की संवेदनशीलता]] नहीं है, और filename.pas या filename.inc समावेशित की जाने वाली फ़ाइल का नाम है। (पास्कल की सम्मिलित फ़ाइलों को [[फ़ाइल नाम एक्सटेंशन|फ़ाइल नाम]] विस्तारण '.inc' के साथ नाम देना सामान्य बात रही है, लेकिन इसकी आवश्यकता नहीं है।) कुछ संकलक, wikt:crock पुनरावर्तन को रोकने के लिए, एक निश्चित संख्या में फ़ाइल को सम्मिलित करने को सीमित करते हैं, स्वयं को लागू करने पर रोक लगाते हैं। या कोई भी वर्तमान में खुली फ़ाइल, या एक समय में अधिकतम एक फ़ाइल सम्मिलित करने तक सीमित है, उदा। एक सम्मिलित फ़ाइल में खुद को या किसी अन्य फ़ाइल को सम्मिलित नहीं किया जा सकता है। हालाँकि, प्रोग्राम जिसमें अन्य फ़ाइलें सम्मिलित हैं, उनमें एक समय में केवल एक, कई सम्मिलित हो सकते हैं।


=== [[पीएचपी]] ===
=== [[पीएचपी]] ===


PHP में, <code>include</code> निर्देश एक और PHP फ़ाइल को शामिल करने और मूल्यांकन करने का कारण बनता है।<ref>{{cite web | url=http://www.php.net/manual/en/function.include.php | title=include | publisher=The PHP Group | website=php.net | access-date=20 February 2014}}</ref> इसी प्रकार के आदेश हैं <code>require</code>, जो शामिल करने में विफल होने पर [[घातक अपवाद]] उत्पन्न करेगा और स्क्रिप्ट को रोक देगा,<ref>{{cite web|url=https://www.php.net/manual/en/function.ज़रूरत होना.php|title=ज़रूरत होना|website=php.net|publisher=The PHP Group|access-date=20 February 2014}}</ref> और <code>include_once</code> और <code>require_once</code>, जो सी की दोहरी समावेशन समस्या से बचने के लिए फ़ाइल को शामिल होने या फिर से आवश्यक होने से रोकता है यदि इसे पहले ही शामिल किया गया है या आवश्यक है।
PHP में, <code>include</code> निर्देश एक और PHP फ़ाइल को सम्मिलित करने और [[मूल्यांकन (तर्क)|मूल्यांकन]] करने का कारण बनता है।<ref>{{cite web | url=http://www.php.net/manual/en/function.include.php | title=include | publisher=The PHP Group | website=php.net | access-date=20 February 2014}}</ref> इसी तरह के आदेशों की आवश्यकता होती है, जो सम्मिलित करने में विफल होने पर एक घातक अपवाद उत्पन्न करेगा और स्क्रिप्ट को रोक देगा, [9] और include_once और requ_once, जो फ़ाइल को सम्मिलित होने या फिर से आवश्यक होने से रोकता है, यदि इसे पहले से ही सम्मिलित किया गया है या आवश्यक है, C से परहेज दोहरे समावेशन की समस्या।


=== अन्य भाषाएँ ===
=== अन्य भाषाएँ ===


शामिल निर्देश के कई रूप हैं, जैसे:
समावेशित निर्देश के कई रूप हैं, जैसे:


* <code>include ...</code> (फोरट्रान, [[माइक्रोसॉफ्ट मैक्रो असेंबलर]])
* <code>include ...</code> (फोरट्रान, [[माइक्रोसॉफ्ट मैक्रो असेंबलर]])
* <code>&lt;!--#include ... --&gt;</code> (HTML [[सर्वर साइड शामिल है]])
* <code>&lt;!--#include ... --&gt;</code> (HTML [[सर्वर साइड शामिल है|सर्वर साइड सम्मिलित है]])
* <code>import ...;</code> (जावा (प्रोग्रामिंग भाषा))
* <code>import ...;</code> (जावा (प्रोग्रामिंग भाषा))
* <code>import ... from ...</code> (ईसीएमएस्क्रिप्ट के रूप में [[एकमा स्क्रिप्ट]])
* <code>import ... from ...</code> (ईसीएमएस्क्रिप्ट के रूप में [[एकमा स्क्रिप्ट]])
Line 109: Line 135:
*<code>import ...;</code> ([[डी (प्रोग्रामिंग भाषा)]])
*<code>import ...;</code> ([[डी (प्रोग्रामिंग भाषा)]])


आधुनिक भाषाएं (जैसे [[हास्केल (प्रोग्रामिंग भाषा)]] और जावा (प्रोग्रामिंग लैंग्वेज)) कॉपीबुक्स से बचती हैं या इसमें शामिल हैं, [[नाम स्थान]] नियंत्रण के लिए [[मॉड्यूलर प्रोग्रामिंग]] और आयात/निर्यात सिस्टम को प्राथमिकता देना। इनमें से कुछ भाषाएं (जैसे कि जावा और सी शार्प (प्रोग्रामिंग भाषा)|सी#) आगे की घोषणाओं का उपयोग नहीं करती हैं और इसके बजाय, पहचानकर्ताओं को स्रोत फ़ाइलों से स्वचालित रूप से पहचाना जाता है और गतिशील पुस्तकालय प्रतीकों से सीधे पढ़ा जाता है (आमतौर पर संदर्भित) <code>import</code> या <code>using</code> निर्देश), जिसका अर्थ है हेडर फ़ाइलों की आवश्यकता नहीं है।
आधुनिक भाषाएं (जैसे [[हास्केल (प्रोग्रामिंग भाषा)]] और जावा (प्रोग्रामिंग लैंग्वेज)) कॉपीबुक्स से बचती हैं या इसमें सम्मिलित हैं, [[नाम स्थान]] नियंत्रण के लिए [[मॉड्यूलर प्रोग्रामिंग]] और [[आयात/निर्यात सिस्टम]] को प्राथमिकता देना। इनमें से कुछ भाषाएं (जैसे कि जावा और C शार्प (प्रोग्रामिंग भाषा) C #) आगे की घोषणाओं का उपयोग नहीं करती हैं और इसके अतिरिक्त , पहचानकर्ताओं को स्रोत फ़ाइलों से स्वचालित रूप से पहचाना जाता है और गतिशील पुस्तकालय प्रतीकों से सीधे पढ़ा जाता है (सामान्यतः  संदर्भित) आयात या निर्देश), जिसका अर्थ है हेडर फ़ाइलों की आवश्यकता नहीं है।


== यह भी देखें ==
== यह भी देखें ==
Line 123: Line 149:
* [[फ़ाइल समावेशन भेद्यता]]
* [[फ़ाइल समावेशन भेद्यता]]
* [[एक परिभाषा नियम]] (ओडीआर)
* [[एक परिभाषा नियम]] (ओडीआर)
* [[इंटरफ़ेस परिभाषा भाषा]] (आईडीएल)
* [[इंटरफ़ेस परिभाषा भाषा|अंतराफलक परिभाषा भाषा]] (आईडीएल)
* कक्षा कार्यान्वयन फ़ाइल
* कक्षा कार्यान्वयन फ़ाइल


Line 135: Line 161:
* [http://www.eventhelix.com/RealtimeMantra/HeaderFileIncludePatterns.htm C++ header file inclusion rules]
* [http://www.eventhelix.com/RealtimeMantra/HeaderFileIncludePatterns.htm C++ header file inclusion rules]


{{DEFAULTSORT:Include Directive}}[[Category: प्रोग्रामिंग का निर्माण]] [[Category: सोर्स कोड]] [[Category: सी (प्रोग्रामिंग भाषा) हेडर| सी (प्रोग्रामिंग भाषा) हेडर]] [[Category: सी (प्रोग्रामिंग भाषा)]] [[Category: सी ++]]
{{DEFAULTSORT:Include Directive}}    


[[fr:Bibliothèque standard du C#Les en-têtes de la bibliothèque C ISO]]
[[fr:Bibliothèque standard du C#Les en-têtes de la bibliothèque C ISO]]


 
[[Category:Created On 17/02/2023|Include Directive]]
 
[[Category:Lua-based templates|Include Directive]]
[[Category: Machine Translated Page]]
[[Category:Machine Translated Page|Include Directive]]
[[Category:Created On 17/02/2023]]
[[Category:Pages with script errors|Include Directive]]
[[Category:Short description with empty Wikidata description|Include Directive]]
[[Category:Template documentation pages|Short description/doc]]
[[Category:Templates Vigyan Ready|Include Directive]]
[[Category:Templates that add a tracking category|Include Directive]]
[[Category:Templates that generate short descriptions|Include Directive]]
[[Category:Templates using TemplateData|Include Directive]]
[[Category:प्रोग्रामिंग का निर्माण|Include Directive]]
[[Category:सी (प्रोग्रामिंग भाषा)|Include Directive]]
[[Category:सी (प्रोग्रामिंग भाषा) हेडर| सी (प्रोग्रामिंग भाषा) हेडर]]
[[Category:सी ++|Include Directive]]
[[Category:सोर्स कोड|Include Directive]]

Latest revision as of 18:06, 3 March 2023

कई प्रोग्रामिंग भाषाओं और अन्य कंप्यूटर फ़ाइलों में एक निर्देश होता है, जिसे प्रायः समावेशन (कभी-कभी प्रतिलिपि या आयात) कहा जाता है, जो निर्दिष्ट फ़ाइल की सामग्री को मूल फ़ाइल में डालने का कारण बनता है। इन समावेशित फाइलों को कॉपीबुक या हेडर फाइल कहा जाता है। वे प्रायः प्रोग्राम डेटा के भौतिक लेआउट, प्रक्रियात्मक कोड के टुकड़े, और / या आगे की घोषणाओं को संपुटीकरण को बढ़ावा देने और कोड या डेटा के पुन: उपयोग को परिभाषित करने के लिए उपयोग किए जाते हैं।

हैडर फ़ाइलें

कंप्यूटर प्रोग्रामिंग में, एक हेडर फाइल एक फाइल है जो प्रोग्रामर को प्रोग्राम के स्रोत कोड के कुछ तत्वों को पुन: प्रयोज्य फाइलों में अलग करने की अनुमति देती है। शीर्षलेख फ़ाइलों में सामान्यतः कक्षाओं(कंप्यूटर विज्ञान) ईएस, उपनेमिका, चर (कंप्यूटर विज्ञान) और अन्य पहचानकर्ताओं की आगे की घोषणाएं होती हैं। प्रोग्रामर जो एक से अधिक स्रोत फ़ाइल में मानकीकृत पहचानकर्ताओं की घोषणा करना चाहते हैं, वे ऐसे पहचानकर्ताओं को एक ही हेडर फ़ाइल में रख सकते हैं, जो हेडर सामग्री की आवश्यकता होने पर अन्य कोड सम्मिलित कर सकते हैं। यह हेडर में अंतराफलक को कार्यान्वयन से अलग रखने के लिए है। [1]

C मानक पुस्तकालय और C ++ मानक पुस्तकालय पारंपरिक रूप से हेडर फाइलों में अपने मानक कार्यों की घोषणा करते हैं।

कुछ हाल ही में बनाई गई संकलित भाषाएँ (जैसे जावा, C #) आगे की घोषणाओं का उपयोग नहीं करती हैं; पहचानकर्ताओं को स्वचालित रूप से स्रोत फ़ाइलों से पहचाना जाता है और गतिशील पुस्तकालय प्रतीकों से सीधे पढ़ा जाता है। इसका मतलब है कि हेडर फाइलों की जरूरत नहीं है।

उद्देश्य

समावेशननिर्देश कोड के पुस्तकालय (कंप्यूटिंग) को विकसित करने की अनुमति देता है जो मदद करता है:

  • सुनिश्चित करें कि हर कोई एक कार्यक्रम के दौरान डेटा लेआउट परिभाषा या प्रक्रियात्मक कोड के समान संस्करण का उपयोग करता है,
  • आसानी से प्रति निर्देश देना जहां सिस्टम में घटकों का उपयोग किया जाता है,
  • जरूरत पड़ने पर आसानी से प्रोग्राम बदलें (केवल एक फाइल को संपादित किया जाना चाहिए), और
  • डेटा लेआउट का पुन: उपयोग करके समय बचाएं।

उदाहरण

एक उदाहरण स्थिति जो एक समावेशित निर्देश के उपयोग से लाभान्वित होती है, जब किसी भिन्न फ़ाइल में फ़ंक्शंस का संदर्भ दिया जाता है। मान लीजिए कि कुछ C(प्रोग्रामिंग भाषा) स्रोत फ़ाइल है जिसमें फलन ऐड है, जिसे पहली बार इसके बाहरी अस्तित्व और प्रकार (एक फलन प्रतिमान के साथ) की घोषणा करके दूसरी फ़ाइल में संदर्भित किया जाता है:

int add(int, int);

int triple(int x)
{
    return add(x, add(x, x));
}

इस दृष्टिकोण का एक अवगुण यह है कि फलन प्रतिमान फलन का उपयोग करने वाली सभी फ़ाइलों में उपस्थित होना चाहिए। एक और अवगुण यह है कि यदि रिटर्न प्रकार या फलन के तर्क बदल दिए जाते हैं, तो इन सभी प्रोटोटाइपों को अद्यतन करने की आवश्यकता होगी। प्रतिमान को एक सिंगल, अलग फाइल में रखने से इन मुद्दों से बचा जा सकता है। प्रतिमान मानते हुए फ़ाइल add.h में ले जाया गया है, तब दूसरी स्रोत फ़ाइल बन सकती है:

#include "add.h"

int triple(int x)
{
    return add(x, add(x,x));
}

अब, हर बार जब कोड संकलित किया जाता है, नवीनतम फलन प्रतिमान में add.h संभावित त्रुटियों से बचने के लिए उनका उपयोग करते हुए फाइलों में सम्मिलित किया जाएगा।







भाषा समर्थन

C/C++

C (प्रोग्रामिंग भाषा) और C++ प्रोग्रामिंग भाषाओं में, #include निर्देश (प्रोग्रामिंग) संकलक को उस पंक्ति को नामित स्रोत फ़ाइल की सामग्री के पूरे पाठ्य भाग के साथ बदलने का कारण बनता है (यदि उद्धरण में सम्मिलित है:) या नामित हेडर (यदि कोण कोष्ठक में सम्मिलित है: <>);[2] ध्यान दें कि शीर्षलेख को स्रोत फ़ाइल होने की आवश्यकता नहीं है।[3] कार्यान्वयन-परिभाषित नेस्टिंग सीमा तक, इन सम्मिलित सामग्रियों पर समावेशन पुनरावर्ती रूप से जारी रहता है। शीर्षलेखों के पास फ़ाइलों से संबंधित नामों की आवश्यकता नहीं है: C++ मानक शीर्षलेखों में सामान्यतः वेक्टर जैसे शब्दों के साथ पहचाने जाते हैं इसलिए#include <vector>, जबकि C मानक हेडर में ".h" विस्तारण के साथ फ़ाइल नाम के रूप में पहचानकर्ता होते हैं, जैसे कि #include <stdio.h>. एक स्रोत फ़ाइल कोई भी फ़ाइल हो सकती है, किसी भी रूप के नाम के साथ, लेकिन सामान्यतः इसे .h विस्तारण के साथ नामित किया जाता है और इसे हेडर फ़ाइल (कभी-कभी .hpp या .hh C++ हेडर को अलग करने के लिए) कहा जाता है, हालाँकि .c, . cc, और .cpp विस्तारण भी सम्मिलित हो सकते हैं (विशेष रूप से एकल संकलन इकाई तकनीक में), और कभी-कभी अन्य विस्तारण का उपयोग किया जाता है।

समावेशित निर्देश के ये दो रूप यह निर्धारित कर सकते हैं कि कार्यान्वयन-परिभाषित तरीके से किस हेडर या स्रोत फ़ाइल को सम्मिलित किया जाए। C++ एक सामान्य उद्देश्य, केस-संवेदी, फ्री-फ़ॉर्म प्रोग्रामिंग भाषा है जो ऑब्जेक्ट-ओरिएंटेड, प्रक्रियात्मक और सामान्य प्रोग्रामिंग का समर्थन करती है। व्यवहार में, सामान्यतः यह किया जाता है कि कोण-कोष्ठक एक मानक सिस्टम निर्देशिका (या निर्देशिकाओं के सेट) में स्रोत फ़ाइलों की खोज करता है, और फिर स्थानीय या प्रोजेक्ट-विशिष्ट पथों में स्रोत फ़ाइलों की खोज करता है (कमांड लाइन पर निर्दिष्ट, एक पर्यावरण चर में, या मेकफाइल या अन्य बिल्ड फ़ाइल में), जबकि उद्धरण के साथ फॉर्म मानक सिस्टम निर्देशिका में नहीं खोजता है, केवल स्थानीय या प्रोजेक्ट-विशिष्ट पथों में खोज करता है।[4] यदि कोई टकराव नहीं होता है, तो कोण-कोष्ठक प्रपत्र का उपयोग परियोजना-विशिष्ट सम्मिलित निर्दिष्ट करने के लिए भी किया जा सकता है, लेकिन इसे खराब रूप माना जाता है। तथ्य यह है कि शीर्षलेखों को फाइलों से मेल खाने की आवश्यकता नहीं है, मुख्य रूप से एक कार्यान्वयन तकनीकीता है, और इसका उपयोग C++ मानक शीर्षलेखों सहित .h विस्तारण को छोड़ने के लिए किया जाता है; सामान्य उपयोग में, हेडर का अर्थ है हेडर फ़ाइल।

उदाहरण के लिए:

#include <stdio.h>  // Include the contents of the standard header 'stdio.h' (probably a file 'stdio.h').
#include <vector>  // Include the contents of the standard header 'vector' (probably a file 'vector.h').
#include "user_defined.h"  // Include the contents of the file 'user_defined.h'.

Cऔर C++ में, दो (या अधिक) फ़ाइलों में एक ही तीसरी फ़ाइल सम्मिलित होने पर समस्याओं का सामना करना पड़ सकता है। एक समाधान यह है कि किसी भी अन्य फ़ाइलों को सम्मिलित करने से फ़ाइलों को सम्मिलित करने से बचें, संभवतः प्रोग्रामर को मैन्युअल रूप से अतिरिक्त जोड़ने के लिए मूल फ़ाइल में निर्देश सम्मिलित करने की आवश्यकता होती है। एक अन्य समाधान का उपयोग गार्ड सम्मिलित करना है।[5]







कोबोल

कोबोल (और आरपीजी चतुर्थ भी) प्रोग्रामर्स को कॉपीबुक्स को प्रोग्राम के स्रोत में हेडर फाइलों के समान तरीके से कॉपी करने की अनुमति देता है, लेकिन यह अन्य टेक्स्ट के साथ उनमें कुछ टेक्स्ट के प्रतिस्थापन की भी अनुमति देता है। कोबोल का मतलब कॉमन बिजनेस ओरिएंटेड भाषा है। अमेरिकी रक्षा विभाग ने एक सम्मेलन में, व्यापार डेटा प्रोसेसिंग जरूरतों के लिए एक भाषा विकसित करने के लिए कोडासिल (डेटा सिस्टम्स भाषा पर सम्मेलन) का गठन किया, जिसे अबकोबोल के रूप में जाना जाता है।

कोबोल का उपयोग एप्लिकेशन प्रोग्राम लिखने के लिए किया जाता है और हम इसका उपयोग सिस्टम सॉफ्टवेयर लिखने के लिए नहीं कर सकते हैं। रक्षा डोमेन, बीमा डोमेन आदि जैसे अनुप्रयोग जिनके लिए विशाल डेटा प्रोसेसिंग की आवश्यकता होती है,कोबोल का व्यापक उपयोग करते हैं।समावेशन के लिए कोबोल कीवर्ड है COPY, और प्रतिस्थापनREPLACING ... BY ... खंड का उपयोग करके किया जाता है। कोबोल 60 के बाद से कोबोल में एक सम्मिलित निर्देश उपस्थित है, लेकिन 1968 तक मूल INCLUDE[6] से COPY में बदल गया। [6]


फोरट्रान

फोरट्रान को प्रति हेडर फाइलों की आवश्यकता नहीं है। हालाँकि, फोरट्रान 90 और बाद में दो संबंधित विशेषताएं हैं: बयान और मॉड्यूल सम्मिलित हैं। पूर्व का उपयोग सी हेडर की तरह प्रक्रिया इंटरफेस वाली एक सामान्य फ़ाइल को साझा करने के लिए किया जा सकता है, हालांकि फोरट्रान प्रक्रियाओं की सभी किस्मों के लिए इंटरफ़ेस के विनिर्देश की आवश्यकता नहीं है। इस दृष्टिकोण का सामान्यतः उपयोग नहीं किया जाता है; इसके अतिरिक्त , प्रक्रियाओं को सामान्यतः पर मॉड्यूल में समूहीकृत किया जाता है जिसे कोड के अन्य क्षेत्रों के भीतर उपयोग कथन के साथ संदर्भित किया जा सकता है। मॉड्यूल के लिए, हेडर-प्रकार की इंटरफ़ेस जानकारी स्वचालित रूप से संकलक द्वारा उत्पन्न होती है और सामान्यतः अलग-अलग मॉड्यूल फ़ाइलों में डाल दी जाती है, हालांकि कुछ कंपाइलरों ने इस जानकारी को सीधे ऑब्जेक्ट फ़ाइलों में रखा है। फोरट्रान परिपक्व है और सक्रिय विकास के अधीन है। भाषा का नवीनतम संशोधन फोरट्रान 2018 है। अगला संशोधन, फोरट्रान 2023, 2023 में जारी करने की योजना है। एक दर्जन से अधिक ओपन सोर्स और मालिकाना फोरट्रान कंपाइलर हैं। इसके अलावा, स्टैंडर्ड लाइब्रेरी और फोरट्रान पैकेज मैनेजर जैसे ओपन सोर्स प्रोजेक्ट सक्रिय विकास के अधीन हैं। भाषा विनिर्देश स्वयं किसी भी अतिरिक्त फाइल के निर्माण को अनिवार्य नहीं करता है, भले ही मॉड्यूल प्रक्रिया इंटरफेस इस तरह से लगभग सार्वभौमिक रूप से प्रचारित हो।

पास्कल

अधिकांश पास्कल (प्रोग्रामिंग भाषा) संकलक समर्थन करते हैं $i या $include संकलक निर्देश, जिसमें $i या $include निर्देश तुरंत एक टिप्पणी ब्लॉक के रूप में शुरू होता है

  • {$i filename.pas}
  • (*$I filename.inc*)
  • {$include filename.inc}
  • (*INCLUDE filename.pas*)

जहां $i या $include निर्देश मामले की संवेदनशीलता नहीं है, और filename.pas या filename.inc समावेशित की जाने वाली फ़ाइल का नाम है। (पास्कल की सम्मिलित फ़ाइलों को फ़ाइल नाम विस्तारण '.inc' के साथ नाम देना सामान्य बात रही है, लेकिन इसकी आवश्यकता नहीं है।) कुछ संकलक, wikt:crock पुनरावर्तन को रोकने के लिए, एक निश्चित संख्या में फ़ाइल को सम्मिलित करने को सीमित करते हैं, स्वयं को लागू करने पर रोक लगाते हैं। या कोई भी वर्तमान में खुली फ़ाइल, या एक समय में अधिकतम एक फ़ाइल सम्मिलित करने तक सीमित है, उदा। एक सम्मिलित फ़ाइल में खुद को या किसी अन्य फ़ाइल को सम्मिलित नहीं किया जा सकता है। हालाँकि, प्रोग्राम जिसमें अन्य फ़ाइलें सम्मिलित हैं, उनमें एक समय में केवल एक, कई सम्मिलित हो सकते हैं।

पीएचपी

PHP में, include निर्देश एक और PHP फ़ाइल को सम्मिलित करने और मूल्यांकन करने का कारण बनता है।[7] इसी तरह के आदेशों की आवश्यकता होती है, जो सम्मिलित करने में विफल होने पर एक घातक अपवाद उत्पन्न करेगा और स्क्रिप्ट को रोक देगा, [9] और include_once और requ_once, जो फ़ाइल को सम्मिलित होने या फिर से आवश्यक होने से रोकता है, यदि इसे पहले से ही सम्मिलित किया गया है या आवश्यक है, C से परहेज दोहरे समावेशन की समस्या।

अन्य भाषाएँ

समावेशित निर्देश के कई रूप हैं, जैसे:

आधुनिक भाषाएं (जैसे हास्केल (प्रोग्रामिंग भाषा) और जावा (प्रोग्रामिंग लैंग्वेज)) कॉपीबुक्स से बचती हैं या इसमें सम्मिलित हैं, नाम स्थान नियंत्रण के लिए मॉड्यूलर प्रोग्रामिंग और आयात/निर्यात सिस्टम को प्राथमिकता देना। इनमें से कुछ भाषाएं (जैसे कि जावा और C शार्प (प्रोग्रामिंग भाषा) C #) आगे की घोषणाओं का उपयोग नहीं करती हैं और इसके अतिरिक्त , पहचानकर्ताओं को स्रोत फ़ाइलों से स्वचालित रूप से पहचाना जाता है और गतिशील पुस्तकालय प्रतीकों से सीधे पढ़ा जाता है (सामान्यतः संदर्भित) आयात या निर्देश), जिसका अर्थ है हेडर फ़ाइलों की आवश्यकता नहीं है।

यह भी देखें

संदर्भ

  1. Alan Griffiths (2005). "Separating Interface and Implementation in C++". ACCU. Retrieved 2013-05-07.
  2. C11 standard, 6.10.2 Source file inclusion, pp. 164–165
  3. C11 standard, 7.1.2 Standard headers, p. 181, footnote 182: "A header is not necessarily a source file, nor are the < and > delimited sequences in header names necessarily valid source file names.
  4. Stallman, Richard M. (July 1992). "The C Preprocessor" (PDF). Archived from the original (PDF) on 4 September 2012. Retrieved 19 February 2014.
  5. Pike, Rob (21 Feb 1989), Notes on programming in C, Cat-v document archive, retrieved 9 Dec 2011
  6. "The COPY Statement". CODASYL COBOL Journal of Development 1968. July 1969. LCCN 73601243.
  7. "include". php.net. The PHP Group. Retrieved 20 February 2014.


बाहरी संबंध