# कोम कोष्ठक <> और उद्धरण चिह्नों का उपयोग करते हुए ""


120

मैं सोच रहा हूँ कि क्या आप का उपयोग करने की अनुमति दी जाती है <Header.h>या "Header.h"जब आप उद्देश्य-सी में फ़ाइलें आयात कर रहे हैं। अब तक मेरा अवलोकन यह रहा है कि आप ""अपने प्रोजेक्ट में फ़ाइलों के लिए उद्धरण चिह्नों का उपयोग करते हैं, जो आपको <>लाइब्रेरी या फ्रेमवर्क का संदर्भ देते समय कार्यान्वयन स्रोत, और कोण कोष्ठक में मिला है ।

लेकिन वास्तव में यह कैसे काम करता है? ब्रैकेट्स का उपयोग करने के लिए मुझे अपनी कक्षाएं लेने के लिए क्या करना होगा? अभी Xcode मुझे अपने हेडर के लिए ऐसा करने की अनुमति नहीं देगा।

इसके अलावा, कुछ चौखटे हेडर में देखकर, मैं देखता हूं कि हेडर एक दूसरे के साथ संदर्भ देते हैं <frameworkname/file.h>वह काम कैसे करता है ? यह जावा में बहुत कुछ संकुल जैसा दिखता है, लेकिन जहाँ तक मुझे पता है, ऑब्जेक्टिव-सी में पैकेज जैसी कोई चीज नहीं है।

जवाबों:


122

Object-C में C / C ++ के साथ यह सामान्य है; उद्धृत रूप "स्थानीय" फ़ाइलों के लिए है (आपको वर्तमान फ़ाइल, जैसे #include "headers/my_header.h") से संबंधित पथ निर्दिष्ट करने की आवश्यकता है , जबकि कोण-ब्रैकेट फ़ॉर्म "वैश्विक" के लिए है - इसमें वे शामिल हैं जो शामिल पथ पर कहीं से पारित हुए हैं संकलक (जैसे #include <math.h>)।

तो अपने स्वयं के हेडर का उपयोग करने के लिए आपको अपने हेडर निर्देशिका के रिश्तेदार या निरपेक्ष पथ को पास करने की आवश्यकता < >नहीं है " "। Xcode में यह कैसे करें के बारे में जानकारी के लिए "कैसे एक वैश्विक जोड़ने के लिए Xcode के लिए पथ शामिल करें" देखें ।

अधिक जानकारी के लिए इस MSDN पृष्ठ को देखें ।


1
मेरे पास सिर्फ GitHub प्रोजेक्ट के साथ एक समस्या थी जिसमें AFNetworking को #import <AFNetworking / AFHTTPRequestOperationManager.h> के रूप में संदर्भित किया गया था, इसलिए मुझे एक हैडर सर्च पाथ के रूप में $ (SRCROOT) / lib / AFNetworking का उपयोग करना पड़ा। इस फोल्डर के तहत AFNetworking नाम का एक और फोल्डर है, जो एंगल ब्रैकेट्स के साथ इम्पोर्ट करता है। आम तौर पर #import "AFHTTPRequestOperationManager.h" काम करेगा, लेकिन इस परियोजना के लिए यह इसे अलग तरह से संदर्भित करता है।
ब्रेनन

ऐसा लगता है कि इसका कारण C / C ++ जैसा ही है। कोण ब्रैकेट (<> प्रतीक द्वारा निरूपित) इंगित करता है कि वर्तमान स्थानीय निर्देशिका के अलावा फ़ाइल की खोज करें जबकि उद्धरण ("प्रतीक" द्वारा चिह्नित) वर्तमान स्थानीय निर्देशिका में फ़ाइल के लिए खोज को इंगित करता है।
जयप्रकाश दुबे

उत्तर के अंत में लिंक पुराना है।
पैंग

14

सी में, कन्वेंशन यह है कि <>ब्रैकेट में हेडर फ़ाइलों को 'सिस्टम' निर्देशिकाओं में और ""उपयोगकर्ता या स्थानीय निर्देशिकाओं में खोजा जाता है ।

प्रणाली और स्थानीय की परिभाषा थोड़ी अस्पष्ट है, मुझे लगता है। मेरा मानना ​​है कि यह सिस्टम निर्देशिकाओं में शामिल पथ या CPPFLAGS में <header.h> के लिए दिखता है, और स्थानीय निर्देशिका या निर्देशिका को -I से संकलक के लिए "शीर्ष लेख" फ़ाइलों के लिए खोजा जाता है।

मुझे लगता है कि यह उद्देश्य-सी के लिए समान रूप से काम करता है।


6

"<>" का उपयोग करके अपनी खुद की कक्षाएं आयात करने के लिए आपको हेडर फ़ाइलों (* .h) को कंपाइलर के लिबास फोल्डर में रखना होगा या सिस्टम लिबास को आपके लिबास फोल्डर में सेट करना होगा।


2

या ऐसा करने के Always Search User Pathलिए सेट YESकरें आप कोण कोष्ठक का उपयोग कर सकते हैं।


1

कोण कोष्ठक के साथ जैसे <Foundation/Foundation.h>आप सिस्टम फाइल आयात करते हैं।

आप "Person.h"स्थानीय फ़ाइलों को आयात करने के लिए दोहरे उद्धरण चिह्नों का उपयोग करते हैं (आपके द्वारा बनाई गई फ़ाइलें) और संकलक को यह बताने के लिए कि उन्हें कहाँ देखना है।


1

<Name.h>- Angle bracketsप्रीप्रोसेसर को एक विशेष पूर्व-निर्दिष्ट सिस्टम की निर्देशिकाओं में खोज करने के लिए कहता है । उदाहरण के लिए आप सिस्टम हेडर को आयात करते हैं, जैसे <UIKit/UIKit.h>या जोड़े गए फ्रेमवर्क

"Name.h"- Quotation marksएक मौजूदा निर्देशिका में खोज करने के लिए प्रीप्रोसेसर को बताता है । यदि शीर्ष लेख को प्रीप्रोसेसर का उपयोग करने का प्रयास नहीं मिला <Name.h>। आमतौर पर आपको अपनी परियोजना की फ़ाइलों के साथ इसका उपयोग करना चाहिए


0

बस एक ही समस्या पर ठोकर खाई, वहाँ 2 प्रकार के खोज पथ हैं Xcode:

User Header Search Paths
Header Search Paths

यदि आप अपने खुद के शामिल किए गए फ़ोल्डरों को हैडर खोज पथ में शामिल करते हैं, तो आप बिना किसी समस्या के कोण वाले कोष्ठक का उपयोग कर सकते हैं।


-4

क्या हेडल फाइल है? हेडर फ़ाइलों में फ़ंक्शंस और वेरिएबल्स की परिभाषाएँ होती हैं जिन्हें प्री-प्रोसेसर #include स्टेटमेंट का उपयोग करके किसी भी C प्रोग्राम में शामिल किया जा सकता है। मानक हैडर फाइलें प्रत्येक संकलक के साथ प्रदान की जाती हैं, और कई क्षेत्रों, स्ट्रिंग हैंडलिंग, गणितीय, डेटा रूपांतरण, मुद्रण और चर के पढ़ने को कवर करती हैं। Ex- #include इसमें स्कैनफ़ (), और आउट पुट की तरह प्रिंटफ़ () फंक्शन और एक कंपाइलर में इनपुट आदि की जानकारी होती है।

शामिल

1) #INCLUDE: - यह एक प्री-प्रोसेसर है जो मेन फंक्शन की प्रक्रिया से पहले प्रोसेस करता है। प्री-प्रोसेसर का मुख्य काम प्रोग्राम के वातावरण को इनिशियलाइज़ करना है यानी हेडर फ़ाइल के साथ प्रोग्राम। 2) .h: - (हेडर फाइल) एक हेडर फाइल एक्सटेंशन वाली फाइल होती है। इनमें सी फंक्शन डिक्लेरेशन और मैक्रो डेफिनेशन होते हैं और इन्हें कई सोर्स फाइल्स के बीच शेयर किया जाता है। प्र) दो प्रकार की हेडर फाइलें होती हैं: प्रोग्रामर द्वारा लिखी जाने वाली फाइलें और आपके कंपाइलर के साथ आने वाली फाइलें? ए) कोणीय कोष्ठक में कोणीय-कोष्ठक रूप "वैश्विक" के लिए है - इसमें वे शामिल हैं जो संकलक को दिए गए शामिल पथ पर कहीं पाए जाते हैं (उदाहरण #include) इसका उपयोग लाइब्रेरी फ़ंक्शन के उपयोग के लिए किया जाता है जो संकलक में सभी तैयार परिभाषित है। सी कन्वेंशन में है कि हेडर फाइल <> ब्रैकेट 'सिस्टम' में खोजे जाते हैं निर्देशिका बी) उद्धरण चिह्नों: - "हैडर.एच" उद्धृत रूप "स्थानीय" फ़ाइलों के लिए है (आपको वर्तमान फ़ाइल से संबंधित पथ निर्दिष्ट करने की आवश्यकता है, जैसे #include "हेडर / my_header.h") सी सम्मेलन में क्या हेडर फाइलें "" उपयोगकर्ता या स्थानीय निर्देशिका में खोजी जाती हैं। इसमें एक फाइल को दूसरे में शामिल किया जाना है। (फाइल इनक्लूजन)। इसका उपयोग दो मामलों में किया जा सकता है: केस 1: यदि हमारे पास एक बहुत बड़ा कार्यक्रम है, तो कोड को कई अलग-अलग फाइलों में विभाजित किया गया है, प्रत्येक में संबंधित कार्यों का एक सेट है। केस 2: हमारे द्वारा लिखे गए सभी कार्यक्रमों में कुछ ऐसे कार्य और सूक्ष्म परिभाषाएं हैं जिनकी हमें सबसे अधिक आवश्यकता है। भूतपूर्व ) सी कन्वेंशन में है कि हेडर फाइलें "" उपयोगकर्ता या स्थानीय निर्देशिका में खोजी जाती हैं। इसमें एक फाइल को दूसरे में शामिल किया जाना है। (फाइल इनक्लूजन)। इसका उपयोग दो मामलों में किया जा सकता है: केस 1: यदि हमारे पास एक बहुत बड़ा कार्यक्रम है, तो कोड को कई अलग-अलग फाइलों में विभाजित किया गया है, प्रत्येक में संबंधित कार्यों का एक सेट है। केस 2: हमारे द्वारा लिखे गए सभी कार्यक्रमों में कुछ ऐसे कार्य और सूक्ष्म परिभाषाएं हैं जिनकी हमें सबसे अधिक आवश्यकता है। भूतपूर्व ) सी कन्वेंशन में है कि हेडर फाइलें "" उपयोगकर्ता या स्थानीय निर्देशिका में खोजी जाती हैं। इसमें एक फाइल को दूसरे में शामिल किया जाना है। (फाइल इनक्लूजन)। इसका उपयोग दो मामलों में किया जा सकता है: केस 1: यदि हमारे पास एक बहुत बड़ा कार्यक्रम है, तो कोड को कई अलग-अलग फाइलों में विभाजित किया गया है, प्रत्येक में संबंधित कार्यों का एक सेट है। केस 2: हमारे द्वारा लिखे गए सभी कार्यक्रमों में कुछ ऐसे कार्य और सूक्ष्म परिभाषाएं हैं जिनकी हमें सबसे अधिक आवश्यकता है। भूतपूर्व

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