2009-09-08 17 views
5

निम्न उदाहरण में प्रतिबंधित:त्रुटि का उपयोग करके कीवर्ड

void foo (double *ptr) 
{ 
    const double * restrict const restr_ptr=ptr; 
} 

मैं इस त्रुटि मिलती है:

error: expected a ";"  const double * restrict const restr_ptr=ptr; 
                ^

मैं -std = c99 के साथ संकलन, जीसीसी 3.4

किसी भी विचार का उपयोग कर?

+0

यह मेरे लिए ठीक है। क्या आपके पास जीसीसी का हालिया संस्करण है? –

+0

वह कोड सूर्य सी 5.8 और जीसीसी 3.4.6 पर मेरे लिए संकलित करता है। Comau ऑनलाइन केवल अप्रयुक्त चर घोषणा के बारे में शिकायत करता है। कृपया अपने पर्यावरण के बारे में अधिक जानकारी प्रदान करें। –

+0

... लेकिन कमौ सी 99 मोड में था। जब मैं इसे सी ++ मोड में डालता हूं, तो यह एक ही चीज़ के बारे में शिकायत करता है। –

उत्तर

9

सी ++ में, restrict कोई कीवर्ड नहीं है (Microsoft extensions को छोड़कर)। इसका मतलब यह नहीं है कि यह सी में क्या करता है। ऐसा लगता है कि आपने अपने सी ++ कंपाइलर को सी 99 मोड लागू करने का प्रयास किया था। सी कोड संकलित करने के लिए एक सी संकलक का उपयोग करें, और C++ संकलित करने के लिए एक C++ कंपाइलर का उपयोग करें। न तो भाषा दूसरे का उप-समूह है।

+0

एघ, जो समझाता है। मैं सी कंपाइलर का उपयोग करके संकलित नहीं कर सकता क्योंकि मैं सी ++ सुविधाओं का उपयोग करता हूं जहां प्रतिबंधित उपयोग किया जाता है। कामकाज क्या है, अगर कोई है? – vehomzzz

+4

'__restrict' आज़माएं। ऐसा लगता है कि यह एक जीसीसी एक्सटेंशन के साथ-साथ एक माइक्रोसॉफ्ट एक्सटेंशन भी है। गैर-जीसीसी के मैक्रो के साथ इसे सारणित करने पर विचार करें, गैर-एमएस कंपाइलर्स इस पर चकित नहीं होते हैं। –

+0

__restrict चाल है .. धन्यवाद – vehomzzz

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