Strange parse error with C and dlc compiler -


मेरे पास निम्न कोड है:

  int bitSwitcher = (1 & lt; & lt; n ) + ~ 0; BitSwitcher = bitSwitcher & lt; & lt; (32 + (~ एन + 1)); Int arthShift = x> & gt; n; Int logShift = arthShift ^ bitSwitcher; Int xSign = x> & gt; 31; Int था NegShift = xSign & amp; logShift; इंटेल था PosShift = arthShift; वापसी थी NegShift ^ wasPosShift;   

पार्स त्रुटि के साथ लाइन है: int arthShift = x> & gt; कंसाइलर भी पिछली पंक्ति में कहता है: वापसी थी NegShift ^ wasPosShift; था NegShift और था PosShift अघोषित हैं, जो मुझे लगता है क्योंकि उनकी घोषणा सीधे या सीधे उपयोग करते हैं ArthShift या अन्य चर जिसका घोषणा arthShift पर निर्भर करते हैं का उपयोग करें।

मैं एक प्रोग्रामिंग पहेली कार्य के हिस्से के रूप में डीएलसी संकलक कहा जाता है कुछ का उपयोग कर रहा हूँ यह सुनिश्चित करने के लिए डिज़ाइन किया गया है कि आप विशेष नियमों का पालन करें (उदा: आप केवल कुछ मान और ऑपरेटरों का उपयोग कर सकते हैं) कभी-कभी मुझे ये अजीब "पार्स त्रुटियां" मिलती हैं (यह केवल एकमात्र जानकारी देता है, जो नंबर लाइन के साथ "पार्स त्रुटि" है। मुझे संदेह नहीं है कि त्रुटि विशेष नियमों से संबंधित है, क्योंकि जब आप उनका उल्लंघन करते हैं, यह इसके बारे में बहुत स्पष्ट है।

1। मैंने कोड को फिर से लिखने की कोशिश की है। मैंने एक ऑनलाइन सी संपादक / संकलक से नकल की है और चिपकाया है (जो इस त्रुटि को नहीं पकड़ता है) और, बस कुछ अजीब अक्षरों में क्रिट हो सकता है, मैंने पूरे फ़ंक्शन को फिर से टाइप किया है। मैंने पहले यादृच्छिक अक्षर रेंगते हैं, जैसे कॉपी-पेस्ट किए गए उद्धरण चिह्न, जो Django द्वारा नहीं पढ़ा जा सके, जैसा कि मैं एक ही पाठ संपादक का उपयोग कर रहा हूं, मैं अब (सब्लाइम) का उपयोग कर रहा हूं। इस संभावना की जांच करने में मदद नहीं मिली।

2. न केवल ऑनलाइन कंपाइलर मैं किसी भी पार्स त्रुटियों को बढ़ाता है, न ही जीसीसी भी करता है। < P> 3. मैं इस व्यक्ति के रूप में एक ही अभ्यास कर रहा हूं: उसे / उसे भी एक ही त्रुटि मिलती है, और कोई भी इसे समझने में सक्षम नहीं रहा।

अगर वहाँ एक जादुई आत्मा है हो सकता है कि कोई भी विचार हो संभव समाधान ... संभवतः कंपाइलर ज्ञान की महारत रखने वाला कोई व्यक्ति अस्पष्ट मामलों का पता लगा सकता है जहां इस तरह की समस्याएं पैदा हो सकती हैं। फिलहाल मैं इस संकलक की दया पर हूं।

पुनश्च: यदि आप इस फ़ंक्शन के उद्देश्य को समझते हैं, तो मैं पहले से ही जानता हूं कि कम से कम एक केस है जहां यह काम नहीं करता है । हहा, मैं बस इस त्रुटि को समझना चाहता हूं।

आप उपयोग कर रहे संकलक शायद केवल C89 का समर्थन करता है C89 में, वेरिएबल्स को एक ब्लॉक की शुरुआत में घोषित किया जाना चाहिए, जो अब सीएएम में सत्य नहीं है।

घोषणाओं को इस तरह शुरू करने की कोशिश करें:

  int Foo () {int arthShift, logShift, xSign, था NegShift, था PoshShift; // घोषणाएं int bitSwitcher = (1 & lt; & lt; n) + ~ 0; BitSwitcher = bitSwitcher & lt; & lt; (32 + (~ एन + 1)); ArthShift = x> & gt; n; LogShift = arthShift ^ bitSwitcher; XSign = x> & gt; 31; WasNegShift = xSign & amp; logShift; WasPosShift = arthShift; वापसी थी NegShift ^ wasPosShift; }    

Comments

Popular posts from this blog

ios - Adding an SKSpriteNode to SKScene from a child SKSpriteNode -

Matlab transpose a table vector -

c# - Textbox not clickable but editable -