मैं जटिल प्रकार बनाना सीख रहा हूं। यहां मैंने typedef का उपयोग करते हुए एक पॉइंटर को सबसे छोटे सरणी 5 में परिभाषित किया है:

typedef short (*mytype)[5];

मैं यह पता लगाने की कोशिश कर रहा हूं कि #define निर्देश के साथ इसे कैसे किया जाए और यदि यह संभव भी है। मैंने यह कोशिश की, लेकिन यह काम नहीं करता है:

#define MYTYPE (short*)[5]

ऐसा लगता है कि इस निर्देश को किसी सूचक या संरचना से अधिक जटिल परिभाषित करने के लिए लागू नहीं किया जा सकता है। तो, यहाँ क्या बात है?

0
Kaiyaha 22 अक्टूबर 2020, 23:09

1 उत्तर

सबसे बढ़िया उत्तर

#define निर्देश के साथ [एक सूचक से सरणी प्रकार के चर] को कैसे परिभाषित करें?

आप बस एक फ़ंक्शन मैक्रो का उपयोग कर सकते हैं।

#define MYTYPE(name)  short (*name)[5]
int main() {
    short arr[5];
    MYTYPE(a) = &arr;
    typedef MYTYPE(mytype);
}

यहाँ क्या बात है?

कोई मतलब नहीं है - प्रीप्रोसेसर एक स्ट्रिंग प्रतिस्थापन उपकरण है जो आमतौर पर सी सिंटैक्स से अवगत नहीं है। किसी प्रकार के उपनाम को परिभाषित करने के लिए typedef का उपयोग करें।

1
KamilCuk 22 अक्टूबर 2020, 20:27