c++ - What does sizeof(int) return in this case? -
# शामिल हैं & lt; stdio.h & gt; # से & lt में शामिल हैं, conio.h & gt; शून्य मुख्य () {if (sizeof (int) & gt; = - 2) printf ("true"); अन्य प्रिंटफ़ ("गलत"); }
जब मैं टर्बो सी ++ का उपयोग करते हुए कोड के इस टुकड़े को संकलित करने का प्रयास कर रहा हूं तो यह सत्य के बजाय झूठी लौट रहा है। लेकिन जब मैंने कार्यक्रम के मूल्य को प्रिंट करने की कोशिश की तो वह 2 लौट रहा है।
यह कैसे संभव हो सकता है? जबकि sizeof (int)
वापस 2 और हां 2> = - 2 है।
हस्ताक्षरित हस्ताक्षर के साथ हस्ताक्षर की तुलना अजीब परिणाम के कारण होता है क्योंकि हस्ताक्षरित अहस्ताक्षरित में पदोन्नत किया गया है। आकार_t आकार (int)
प्रकार std ::
यदि (static_cast और lt; int & gt; (sizeof (int)) gt2 = /)
यदि आप यदि ((int) sizeof (int) & gt; = -2) संकलित करने पर
सी
संकलक
पर काम कर रहा है उदाहरण के लिए, कुछ चेतावनी झंडे -Wall
के साथ कोड को हस्ताक्षरित / अहस्ताक्षरित तुलना के बारे में संभवतः चेतावनी देनी चाहिए (यदि आप चेतावनियों की अनदेखी नहीं कर रहे हैं)
Comments
Post a Comment