2009-08-21 12 views

उत्तर

14

आवश्यक नहीं है। हालांकि, सी ++/सीएलआई सी # (उदाहरण के लिए मुक्केबाजी) में मौजूद चीजों को करने के गैर-निष्पादक तरीकों के आसपास सिंटैक्टिक चीनी को दूर ले जाता है।

इसके अलावा, सी ++/सीएलआई आपको अप्रबंधित कोड के साथ एक और अधिक स्वच्छ इंटरऑप की अनुमति देता है, वास्तव में आपको प्रबंधित/अप्रबंधित कोड मिश्रण करने की इजाजत देता है, जो एक प्रदर्शन महत्वपूर्ण वातावरण लाभकारी हो सकता है।

संपादित करें: http://msdn.microsoft.com/en-us/library/ms379617(VS.80).aspx

+0

सी # की सिंटेक्टिक चीनी की कमी के बारे में बहुत अच्छी बात है। –

+0

धन्यवाद, चीजों को देखने का एक अलग तरीका है, लेकिन मुझे लगता है कि यह एक प्रदर्शन लाभ है क्योंकि यह आपको प्रदर्शन कोड – LorenVS

+0

लिखने में मदद करता है फिर फिर, सी ++/सीएलआई स्टैक आवंटन और आरएआईआई के माध्यम से चीजों के लिए सिंटैक्टिक चीनी का परिचय देता है। 'कॉल का निपटान करें। –

8

चूंकि वे दोनों .NET ढांचे पर चलते हैं, तो मैं कहूंगा कि कोई भी प्रदर्शन अंतर लापरवाह होगा। कोई भी अंतर लगभग निश्चित रूप से नीचे जाएगा कि आप जो भी कंपाइलर्स काम कर रहे हैं, वे कितनी अच्छी तरह से काम कर रहे हैं।

1

यह देखकर कि वे दोनों .NET भाषाएं हैं जो एक ही बाइट कोड में संकलित हो जाती हैं जो बदले में उसी वर्चुअल मशीन पर चलती है जो मैं सामान्य रूप से कहूंगा, नहीं।

सी ++/सीएलआई वास्तव में केवल .NET और C++ के बीच भाषा इंटरऑप प्रदान करने का इरादा है।

+3

C++/CLI अपने आप में एक पूर्ण विकसित भाषा है:

मतभेदों में से कुछ के लिए यह पोस्ट देखें। सी # पर कुछ फायदे हैं, यहां तक ​​कि एक/clr में: शुद्ध संकलन पर्यावरण। –

+0

मुझे लगता है कि इस उत्पाद पर बहुत अधिक प्रयास समर्पित था। यह सोचना मुश्किल है कि यह केवल इंटरऑप ऑपरेशंस के लिए था। –

1

सी ++/सीएलआई में लिखे गए किसी भी प्रबंधित कोड अनिवार्य रूप से समकक्ष सी # के समान होंगे, जो संकलक सटीकता मानते हैं, क्योंकि वे दोनों मध्यवर्ती भाषा निर्देशों के रूप में समाप्त हो जाएंगे। हालांकि, सी ++/सीएलआई प्रबंधित भाग के साथ अप्रबंधित कोड को मिश्रित करना आसान बनाता है जो अच्छी तरह अनुकूल होने पर काफी गति लाभ प्रदान कर सकता है।

3

अच्छा, संक्षिप्त उत्तर कोई है। क्यूं कर? सी ++/सीएलआई में संदर्भ प्रकार एमएसआईएल के लिए संकलित किए गए हैं, जैसा कि सी # में है।

हालांकि सी ++/सीएलआई (और लंबा उत्तर) के बारे में अच्छी बात यह है कि आप आसानी से देशी कोड में कॉल कर सकते हैं, जो (कई मामलों में) तेज़ है। ऐसा कहा जा रहा है कि, यदि आप मूल सी ++ वर्ग लिखते हैं और उम्मीद करते हैं कि किसी प्रबंधित कक्षा में किसी के द्वारा बुलाया जाने वाला यह मूल रूप से निष्पादित किया जाए, तो मूल सी ++ कक्षा को सीएलआर समर्थन के बिना संकलित किया जाना चाहिए (this question यह कैसे करना है)।

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