मैं एक सी इस, "_MOVE_H" के बारे में इतना खास क्या है?
#ifndef _MOVE_H
#define _MOVE_H
class Move {
int x, y;
public:
Move(int initX = 0, int initY = 0) : x(initX), y(initY) {}
int getX() { return x; }
void setX(int newX) { x = newX; }
int getY() { return y; }
void setY(int newY) { y = newY; }
};
#endif
की तरह और मेरे विस्मय करने के लिए फ़ाइल ++ #ifndef
और #endif
के बीच सभी कोड बस संकलक द्वारा नजरअंदाज कर दिया है (मैं कसम खाता हूँ कि मैं कहीं और _MOVE_H
को परिभाषित नहीं कर रहा हूँ) है, और मेरे पास है लापता परिभाषाओं के बारे में सभी प्रकार की त्रुटियां। मैं सोच रहा था कि मैंने कुछ गलत किया है, लेकिन जब मैं एक और कुंजी का उपयोग करने का प्रयास करें (_MOVE_Ha
की तरह, सब कुछ वापस सामान्य करने के लिए है। _MOVE_H
कुछ सी में विशेष मतलब यह है ++?
मैं उबंटू 10.04, जीसीसी 4.4.3 चल रहा हूँ , अगर है कि मायने रखती है
धन्यवाद,
लाइब्रेरी फ़ाइलों में से एक हो सकता है जिसमें आप इसके समावेशी गार्ड के लिए उपयोग कर रहे हैं? क्या आपने इसे देखा? बीटीडब्ल्यू, मैं आमतौर पर प्रोजेक्ट नाम के साथ इसे उपसर्ग करता हूं ताकि इस प्रकार के मुद्दे से बचने के लिए। – Naveen
'परिभाषित' के बजाय '#pragma एक बार' का उपयोग करने का एक अन्य कारण गार्ड शामिल है ... – Inverse
@ इनवर्क्स, '#pragma एक बार' एक कंपाइलर एक्सटेंशन है और सभी कंपाइलर्स द्वारा समर्थित नहीं है। गार्ड शामिल करें एकमात्र सुरक्षित कंपाइलर एकाधिक समावेश को रोकने के स्वतंत्र माध्यम हैं। –