2008-08-22 23 views
5

मैं उद्देश्य-सी और कोको सीख रहा हूं।'शून्य परिभाषित मैक्रो' क्या है?

IBOutlet एक अशक्त से परिभाषित मैक्रो, जो सी पूर्वप्रक्रमक संकलन समय पर दूर करता है: एप्पल ट्यूटोरियल में मैं वहाँ एक पक्ष टिप्पणी यह ​​दर्शाता है कि के माध्यम से काम कर रहा हूँ।

मैं उत्सुक हूं - एक शून्य परिभाषित मैक्रो क्या है?

उत्तर

8
#define IBOutlet 

जब भी प्रोग्राम टेक्स्ट में आईबीओलेट का उपयोग किया जाता है, तो इसे कुछ भी नहीं बदला जाएगा।

8

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

7

एक शून्य-परिभाषित मैक्रो एक मैक्रो है जिसे प्रीप्रोसेसर द्वारा कुछ भी नहीं हटाया जाएगा (हटा दिया जाएगा)। address दोनों इनपुट और आउटपुट है,

 
#define IN 
#define OUT 
#define INOUT 

int myFunction(IN char *name, INOUT char *address, OUT char *phone); 

इस घोषणा पता चलता है कि name समारोह के लिए एक इनपुट चर रहा है, phone एक आउटपुट चर रहा है: यह की भूमिका जैसे कोड में कुछ, के बारे में एक संकेत दे रहा है।

+1

यह वाकई प्यारा है। मुझे अडा (स्पष्ट रूप से) याद दिलाता है। मैं पैरामीटर नाम को इन या आउट के साथ उपसर्ग करना पसंद करता हूं। लेकिन एक ही प्रभाव। – schwa

+0

पागल मैक्रोज़ के साथ नामस्थान के प्रदूषण की कमी को छोड़कर, वही। ;) – Kos

0

इसके अलावा - यदि आप अनिश्चित हैं कि कुछ भी परिभाषित किया गया है - कमांड इसे डबल-क्लिक करें और एक्सकोड मूल स्रोत फ़ाइल में परिभाषा को खोल देगा।

0

ओह और जब मैं इसमें हूं। विकल्प डबल क्लिक (प्रयास करने के लिए) डबल क्लिक किए गए प्रतीक के लिए प्रलेखन खोलें।

+3

आप दो उत्तरों को मर्ज क्यों नहीं करते हैं और एक को हटाते हैं? – Amarghosh

संबंधित मुद्दे