C ++ में शामिल हैं और अंतर आयात करते हैं


जवाबों:


61

#import एक Microsoft-विशिष्ट चीज है, जाहिरा तौर पर केवल COM या .NET सामान के लिए।

#include एक मानक C / C ++ प्रीप्रोसेसर स्टेटमेंट है, जिसका उपयोग आपकी सोर्स कोड फ़ाइल में हेडर (या कभी-कभी अन्य सोर्स कोड) फ़ाइलों को शामिल करने के लिए किया जाता है।


6
यह सच नहीं है। #Import का निर्देश आधिकारिक तौर पर gcc टीम द्वारा 3.4 संस्करण में अनिर्दिष्ट था और gcc के सभी पिछले संस्करणों में 99% समय काम करता है जो समर्थन करता है
ब्रायन आर। बॉडी


1
जिज्ञासु, मुझे इसकी जानकारी नहीं थी। शायद मुझे कहना चाहिए कि यह एक COM- और .NET- विशिष्ट चीज के बजाय है।
हेड गीक

24
Gcc द्वारा समर्थित #import एक शीर्ष लेख को केवल एक बार शामिल करने का एक गैर-ज़रूरी तरीका है: <a href=" gcc.gnu.org/onbuildocs/gcc-4.3.2/cpp/…> । यह Microsoft COM # से पूरी तरह से असंबंधित है। आयात।
फिजर 18

3
GCC #import वास्तव में एक ऑब्जेक्टिव-सी प्रीप्रोसेसर कमांड है जो कि .c फाइलों के साथ gcc और क्लैंग (पीडियाटिक मोड को छोड़कर) में काम करता है।
माइकल मॉरिस

83

VC ++ में आयात: #import प्रकार पुस्तकालयों या .tlbs (COM सामान) के लिए है।

प्रकार लाइब्रेरी की सामग्री C ++ कक्षाओं में परिवर्तित हो जाती है, जो अधिकतर आपके लिए COM इंटरफेस का वर्णन करती है, और फिर इसे आपकी फ़ाइल में शामिल किया जाता है।

#importनिर्देश सी ++ भाषा के लिए एक विस्तार के रूप में माइक्रोसॉफ्ट द्वारा शुरू की गई थी। आप इसके बारे में इस MSDN लेख पर पढ़ सकते हैं ।

#importनिर्देश भी नेट / CLI सामान के साथ प्रयोग किया जाता है।

Gcc में आयात: gcc में आयात VC ++ में आयात से अलग है। हेडर को केवल एक बार ही शामिल करना एक सरल तरीका है। (वीसी ++ और जीसीसी में आप इसे #pragmaएक बार भी कर सकते हैं )

#importनिर्देश आधिकारिक तौर पर संस्करण 3.4 में जीसीसी टीम द्वारा undeprecated किया गया था और जीसीसी के सभी पिछले संस्करण जो समर्थन में ठीक समय के 99% काम करता है

शामिल करें: #include ज्यादातर हेडर फ़ाइलों के लिए है, लेकिन आपकी वर्तमान फ़ाइल की सामग्री को प्रस्तुत करने के लिए। #includeC ++ मानक का हिस्सा है। आप इसके बारे में इस MSDN लेख पर पढ़ सकते हैं ।


3
आपके MSDN लिंक बासी हैं। धन्यवाद Microsoft।
मार्क रैनसम

8

#importकुल मिलाकर हमेशा के लिए एक समाधान है

#ifndef ...
#define ...
#include ...
#endif

काम के आसपास। #importएक फ़ाइल शामिल है केवल अगर यह पहले शामिल नहीं किया गया है।

यह ध्यान देने योग्य हो सकता है कि एप्पल के ऑब्जेक्टिव-सी भी #importबयानों का उपयोग करते हैं।


4

आयात भी n2073 से जुड़े कीवर्ड्स में से एक था , C ++ में मॉड्यूल्स , सितंबर 2006 में डेवेद वंदेवोर्डे द्वारा भाषा समिति को प्रस्तावित। मैं यह जानने के लिए भाषा गीक के लिए पर्याप्त नहीं हूं कि क्या प्रस्ताव निश्चित रूप से ठंडे बस्ते में था या यदि इसे लागू होने का इंतजार है। (अवधारणा का प्रमाण) लेखक या किसी और से ...


दवेद उस समय ईडीजी कर्मचारी थे, इसलिए मैं उनसे इतना काम करने वाला कोड चाहता हूं।
मसलक

1
मुझे यकीन है कि उन्होंने अपेक्षित लेगवर्क किया है, क्योंकि '#include' से आयात तंत्र में जाना बहुत अच्छा होगा। लेकिन मैंने इस सुविधा पर एक झांकना सुना है, और मुझे पूरा यकीन है कि यह C ++ 0X में नहीं है। शायद कुछ समय पहले मैं रिटायर होऊं; ^) ~
डॉन वेकफील्ड

1
जैसा कि मैंने आशंका जताई है, यह कुछ साल है: C ++ 09 में मॉड्यूल?
डॉन वेकफील्ड

4

कृपया ध्यान दें कि जीसीसी 4.1 में, #import है पदावनत। यदि आप इसका उपयोग करते हैं, तो आपको चेतावनी मिलेगी:

#import एक जीसीसी विस्तार है


इस सवाल का जवाब नहीं है।
एसएस ऐनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.