मैं सी के लिए नया हूं, और मुझे कुछ स्रोत कोड दिया गया है जिसे किसी और ने लिखा है जो विंडोज़ पर संकलित किया गया था।विंडोज और लिनक्स पर संकलन
लिनक्स पर संकलन करने की कोशिश करने के बाद मुझे त्रुटियां हैं क्योंकि लिनक्स ड्वॉर्ड, वर्ड और यूआईएनटी 32 का समर्थन नहीं करता है। उदाहरण के लिए मेरे पास 6 फाइलें हैं। एएच, ए सी, बीएच, बी सी, सीएच, सीसी। ये कीवर्ड सभी फाइलों में हैं।
तो मैं 2 संभावित समाधानों के बारे में सोच रहा हूं। जो बेहतर है # परिभाषित या टाइपिफ़।
1)
typedef unsigned long DWORD;
typedef unsigned short WORD;
typedef unsigned int UNINT32;
2)
#define DWORD unsigned long
#define WORD unsigned short
#define UINT32 unsigned int
दूसरे भाग मैं सोच रहा हूँ जहाँ मैं इन घोषणाओं डाल चाहिए। क्या उन्हें हेडर फाइलों में जाना चाहिए, या क्या उन्हें स्रोत फाइलों में जाना चाहिए?
उदाहरण के लिए मुझे हेडर फ़ाइलों में या स्रोत फ़ाइलों में ऐसा कुछ करना चाहिए?
#ifdef WIN32
/* windows stuff */
#else
typedef unsigned long DWORD;
typedef unsigned short WORD;
typedef unsigned int UNINT32;
#endif
उपरोक्त सुझावों के लिए बहुत धन्यवाद,
मुझे इसे मारो .. धीमी टाइपिंग –
के लिए मुझे जो मिलता है, यदि आप क्रॉस प्लेटफार्म संगतता को बनाए रखने जा रहे हैं, तो आप इसे windows.h नाम वाली फ़ाइल में रखना चाहेंगे, जो कि आप एक मानक स्थान पर रहते हैं, चूंकि यह विंडोज़ पर फाइल है जो आपको ये घोषणाएं देती है। –
यदि मशीन में लंबी = 8 (64 बिट मशीनें) हैं, तो टाइपपीफ हस्ताक्षरित int DWORD का उपयोग करें। – Antarus