c++ - Errors with #define -
मेरे पास एक फाइल है जिसमें कई सूची में लगभग 42 विभिन्न मूल्यों पर जाता है मैं इस फाइल को मेरी दूसरी फ़ाइलों में शामिल करता हूं, लेकिन जब भी मैं इनमें से एक स्थिरांक का उपयोग करने की कोशिश करता हूं, तो मुझे त्रुटियां मिलती हैं I एक विशिष्ट उदाहरण के लिए, मैं करने की कोशिश करता हूं - मेरे द्वारा प्राप्त त्रुटियां हैं - मुझे नहीं पता कि मुझे ये त्रुटियां क्यों मिल रही हैं क्योंकि BUMP पहले ही परिभाषित है यह तब भी होता है जब मैं परिभाषित होने वाले मामलों के साथ एक स्विच स्टेटमेंट का उपयोग करने का प्रयास करता हूं - क्या ऐसा कुछ है जो मैं अपने यह तो आपका कोड वास्तव में इस तरह कम्पाइलर को दिखता है: जो स्पष्ट रूप से वाक्यविन्यास त्रुटियाँ हैं इसे ठीक करने के लिए, अपने लेकिन सी ++ में, आपको यह तरीका बेहतर है क्योंकि #define स्टेटमेंट जैसे -
#ifndef UTILITY_H # परिभाषित UTILITY_H # परिभाषित BUMP 7; # WHEEL_DROPS 7 को परिभाषित करें; # वॉल 8 को परिभाषित करें; # CLIFF_LEFT 9; # CLIFF_FRONT_LEFT 10; # CLIFF_FRONT_RIGHT 11 को परिभाषित करें; # CLIFF_RIGHT 12 को परिभाषित करें; #VIRTUAL_WALL 13 परिभाषित; ... ... #endif
Sensor_Packet temp; Temp = robot.getSensorValue (BUMP); // लाइन 54 कॉट & lt; & lt; temp.values [0] & lt; & lt; endl;
main.cpp: 54: त्रुटि: अपेक्षित '' ????) ??? पहले एक "???"; टोकन main.cpp: 54: त्रुटि: अपेक्षित प्राथमिक-अभिव्यक्ति से पहले ????) ??? टोकन main.cpp: 54: त्रुटि: अपेक्षित '' ???? ;? पहले एक ????) टोकन
स्विच (जो) {case BUMP: // do stuff केस CLIFF_LEFT: // do stuff}
#define का उपयोग करने के बारे में छोड़ रहा हूं? मैंने सोचा था कि मुझे जो करना था, वह एक निरंतर परिभाषित किया गया था और फिर मैं उसे कॉल कर सकता था। किसी भी मदद की सराहना की जाती है।
#define s पर एक करीब से नज़र डालें : <पूर्व>
# बफ़ 7 को परिभाषित करें;
BUMP के साथ
7; को बदलने के लिए पूर्वप्रोसेसर को बताता है। ध्यान दें कि मैक्रो परिभाषा में अर्धविराम भी शामिल है!
Sensor_Packet temp; Temp = robot.getSensorValue (7;); अदालत के & lt; & lt; temp.values [0] को & lt; & lt; endl; // ... स्विच (जो) {केस 7 ;: do do stuff case 9 ;: // do stuff}
#define स्टेटमेंट्स में सेमीकॉलन को निकाल दें।
const int s के बजाय स्थिरांक के लिए उपयोग करना चाहिए
#define s का यहां कुछ संभव उदाहरण दिए गए हैं:
enum cliffpositions {CLIFF_LEFT = 9, CLIFF_FRONT_LEFT = 10, CLIFF_FRONT_RIGHT = 11, CLIFF_RIGHT = 12,}; वॉल्यूम वॉल्यूम {वॉल = 8, वर्ट्यूल_वाल = 13; } Const int BUMP = 7; Const int WHEEL_DROPS = 7; // etc ...
#define s,
const int s और
enum < / कोड> सम्मान क्षेत्र और अधिक प्रकार सुरक्षित हैं।
Comments
Post a Comment