WinNT.h में स्थित ANYSIZE_ARRAY
का उद्देश्य क्या है?<winnt.h> में ANYSIZE_ARRAY का उद्देश्य क्या है?
मैं 2004 से इसके बारे में एक एमएसडीएन ब्लॉग पोस्ट देखता हूं लेकिन यह मुझे समझ में नहीं आता है।
WinNT.h में स्थित ANYSIZE_ARRAY
का उद्देश्य क्या है?<winnt.h> में ANYSIZE_ARRAY का उद्देश्य क्या है?
मैं 2004 से इसके बारे में एक एमएसडीएन ब्लॉग पोस्ट देखता हूं लेकिन यह मुझे समझ में नहीं आता है।
मुझे लगता है कि आप this blog post के बारे में बात कर रहे हैं।
यह अक्सर जब एक चर आकार (संकलन समय पर अज्ञात) सरणी एक struct का हिस्सा है प्रयोग किया जाता है:
typedef struct {
int CommonFlags
int CountOfThings;
THING Things[ANYSIZE_ARRAY]; //Things[1];
} THINGSANDFLAGS;
उन संरचनाओं के साथ काम करने के लिए आप अक्सर पहले वांछित एपीआई के आकार पाने के लिए फोन डेटा, फिर स्मृति के एक ब्लॉक को काफी बड़ा आवंटित करें और आखिरकार एक ही एपीआई को फिर से कॉल करें ताकि यह डेटा भर सके ...
धन्यवाद - एक लिंक की गई सूची में इसका उपयोग क्यों करें? – jglouie
@LemonBeagle एक लिंक्ड सूची में अधिक मेमोरी की आवश्यकता होती है और/या एपीआई कार्यान्वयन में पहले से ही एक सरणी में आइटम हो सकते हैं और इसे कॉलर्स बफर में बस याद कर सकते हैं। वस्तुओं की सूची में चलना भी धीमा है और आपको प्रत्येक आइटम को मुक्त करना है न कि केवल एक बड़ा बफर ... – Anders
this page से:
सी में, एक चर आकार सरणी
a[1]
याa[ANYSIZE_ARRAY]
, जहांANYSIZE_ARRAY
1
के रूप में परिभाषित किया गया है के रूप में घोषित किया गया है। फिर यह प्रयोग किया जाता है जैसे कि यह बड़ा था।
कृपया हमें एमएसडीएन ब्लॉग पोस्ट से लिंक दें? –
@ एग्नेल http://blogs.msdn.com/b/oldnewthing/archive/2004/08/26/220873.aspx – jglouie