2010-10-30 19 views
6

पर दृश्य सी ++ में सी कोड लिखना मुझे लगता है कि मतभेद नगण्य हैं, लेकिन मैं कुछ संख्या क्रंचिंग कर रहा हूं और इसलिए मैं सी का उपयोग करना चाहता हूं Ive ने केवल VS2010 में एक प्रोजेक्ट बनाया है, सी ++ प्रोजेक्ट चुना है और कुछ सी लिखा है। ठीक निष्पादित करता है, लेकिनवीएस -2010

क्या यह तेज़ (एर) सी कंपाइलर या सी ++ में बनाया और निष्पादित किया जा रहा है क्योंकि यह एक सी ++ प्रोजेक्ट है?

मैं कैसे निर्दिष्ट कर सकता हूं कि मैं जिस कोड को लिखना चाहता हूं वह वास्तव में सी है और संकलित और सी के रूप में चलाने के लिए?

उत्तर

8

विजुअल स्टूडियो सी ++ कंपाइलर सभी .c फ़ाइलों को सी भाषा फ़ाइलों के रूप में मानेंगे और उन्हें संकलित करेगा।

अतिरिक्त संदर्भ:

डिफ़ॉल्ट रूप से, विजुअल C++ संकलक व्यवहार करता है सभी फ़ाइलें ग में खत्म सी स्रोत कोड, और सभी फ़ाइलें सी ++ स्रोत कोड के रूप सीपीपी में खत्म हो जाता है। फ़ाइल नाम एक्सटेंशन के बावजूद कंपाइलर को सभी फ़ाइलों को C के रूप में संसाधित करने के लिए मजबूर करने के लिए, /टीसी कंपाइलर विकल्प का उपयोग करें।

http://msdn.microsoft.com/en-us/library/bb384838.aspx

+1

+1/टीसी कंपाइलर विकल्प के बारे में +1, जो मुझे लगता है कि मुझे पहले से ही पता होना चाहिए था ... –

0

तुम बस अब मूर्ख जा रहा है। सी को किसी भी तरह से सी ++ से तेज़ होने की गारंटी नहीं है - यह सब अंत में मूल मशीन निर्देशों के लिए संकलित है। यदि आप एक वास्तविक प्रदर्शन छलांग चाहते हैं तो आपको दूसरे कंपाइलर का उपयोग करना चाहिए, उदाहरण के लिए इंटेल, या जीपीयू या ऐसा कुछ उपयोग करें।

0

वास्तव में आपको इंटेल के कंपाइलर का उपयोग करने की अधिक गति देता है, जो प्लगइन के रूप में उपलब्ध है। वास्तविक दुनिया के मतभेद महत्वपूर्ण हैं, खासकर संख्या क्रंचिंग के लिए। सी और सी ++ के बीच का अंतर संदिग्ध है। link text

आप संख्या क्रंचिंग कर रहे हैं, आप SIMD एक्सटेंशन का उपयोग कर यदि संभव हो तो विचार करना चाहिए:

यहाँ एक अच्छी जगह शुरू करने के लिए है। इंटेल के कंपाइलर पर सिमड का उपयोग करना, बनाम सीधे एमएस सी संकलित कोड, आपको कुछ गंभीर लाभ देगा।

+0

जैसा कि एलेक्स ने कहा था, जीपीयू एक और विकल्प है। आप यहां ओपनसीएल या माइक्रोसॉफ्ट के डायरेक्ट कंप्यूट का उपयोग कर सकते हैं। गति के लिए, सही GPU के साथ, आप एक पीसी पर supercomputing realm ... में हैं। – IamIC