सी कोड में #define
के स्थान पर typedef
का उपयोग करने के लिए क्या लाभ (यदि कोई है) है?#defines के बजाय सी टाइपपीफ का उपयोग क्यों करें?
एक उदाहरण के रूप में, वहाँ जब दोनों के रूप में
void func()
{
UBYTE byte_value = 0;
/* Do some stuff */
return byte_value;
}
इस्तेमाल किया जा सकता जाहिर है पूर्व प्रोसेसर की कोशिश करेंगे
typedef unsigned char UBYTE
का उपयोग कर
#define UBYTE unsigned char
से अधिक करने के लिए किसी भी लाभ है #define
का विस्तार करें जहां भी यह एक देखता है, जोके साथ नहीं होगा, लेकिन ऐसा लगता है कि मुझे कोई विशेष लाभ या हानि नहीं है; मैं ऐसी परिस्थिति के बारे में नहीं सोच सकता जहां कोई समस्या होने पर या तो उपयोग में कोई त्रुटि नहीं होगी।
प्रीप्रोसेसर को छोड़ दो: "मुझे दुर्व्यवहार करें, मुझे दुर्व्यवहार करें .. मुझे वांछित महसूस करें !!" +1 –
मैं प्रीप्रोसेसर का एक उचित बिट दुरुपयोग करता हूं, लेकिन तब तक नहीं, जब तक कि कोई अन्य तरीका न हो। (मुझे पिछले 20 सालों में क्रॉस-प्लेटफ़ॉर्म 64-बिट पूर्णांक हैंडलिंग करने के लिए कोड लिखने के बाद * एक बार * इसकी आवश्यकता थी। उस समय उपलब्ध कंपेलरों पर यह आश्चर्यजनक रूप से मुश्किल था, और मेरे पास अधिक से अधिक #ifdefs के साथ समाप्त हुआ पसंदीदा।) –
पॉइंटर प्रकारों को भी काम करता है ... – hugomg