मैं एप्पल के ScriptingBridge
ढांचे के साथ काम कर रहा हूँ, और कहा कि इस तरह कई enum
रों शामिल iTunes के लिए एक हेडर फाइल उत्पन्न किया है:एनम किस प्रकार का मूल्य स्ट्रिंग प्रतीत होता है?
typedef enum {
iTunesESrcLibrary = 'kLib',
iTunesESrcIPod = 'kPod',
iTunesESrcAudioCD = 'kACD',
iTunesESrcMP3CD = 'kMCD',
iTunesESrcDevice = 'kDev',
iTunesESrcRadioTuner = 'kTun',
iTunesESrcSharedLibrary = 'kShd',
iTunesESrcUnknown = 'kUnk'
} iTunesESrc;
मेरे समझ के साथ कि enum
मान पूर्णांक की तरह होना था था, लेकिन इस परिभाषा लगता है उस नियम का उल्लंघन करने के लिए। इसके अलावा, ऐसा लगता है कि इन enum
मानों को पूर्णांक के रूप में मानते हैं (उदाहरण के लिए NSPredicate
में) सही काम नहीं करता है।
मैं एक खाली main
समारोह के साथ एक सी फाइल करने के लिए ऊपर enum
घोषणा जोड़ा, और यह i686-apple-darwin9-gcc-4.0.1
का उपयोग कर संकलित। इसलिए, इस प्रकार के enum
एस सी मानक के अनुरूप नहीं हो सकते हैं (जैसा कि पैराप्पा नीचे बताए गए हैं), कम से कम कुछ जीसीसी द्वारा टाइप किए गए हैं।
तो, उस प्रकार का क्या है, और उदाहरण के लिए, मैं प्रारूप स्ट्रिंग में इसका उपयोग कैसे कर सकता हूं?
अच्छा - कुछ आधिकारिक। :) –
यह एक आम, लेकिन गैर-पोर्टेबल, गैर-मानक एक्सटेंशन सी 99 से पहले भी था। – dmckee
@ डीएमकी: बहु-बाइट वर्ण स्थिरांक पहले से ही एएनएसआई-सी 8 9 का हिस्सा थे (खंड 3.1.3.4 देखें), इसलिए यह हमेशा मानक रहा है! – Christoph