मैं size_t
C में एक प्रकार के वेरिएबल को प्रिंट करना चाहता हूं, लेकिन ऐसा प्रतीत होता है कि size_t
विभिन्न आर्किटेक्चर पर अलग-अलग वेरिएबल प्रकारों के लिए उपनाम है। उदाहरण के लिए, एक मशीन (64-बिट) पर निम्न कोड कोई चेतावनी नहीं देता है:
size_t size = 1;
printf("the size is %ld", size);
लेकिन मेरी अन्य मशीन (32-बिट) पर उपरोक्त कोड निम्नलिखित चेतावनी संदेश तैयार करता है:
चेतावनी: स्वरूप '% ld' प्रकार 'लंबी int *' की अपेक्षा करता है, लेकिन तर्क 3 में 'size_t *' प्रकार है
मुझे संदेह है कि यह पॉइंटर आकार में अंतर के कारण है, ताकि मेरी 64-बिट मशीन size_t
पर long int
( "%ld"
) को अलियास किया जाए , जबकि मेरी 32-बिट मशीन size_t
को अन्य प्रकार से अलियास किया गया है।
क्या विशेष रूप से इसके लिए कोई प्रारूप निर्दिष्ट है size_t
?
&
कहीं दूर किया ?