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 है।

आकार (int) प्रकार std ::

हस्ताक्षरित हस्ताक्षर के साथ हस्ताक्षर की तुलना अजीब परिणाम के कारण होता है क्योंकि हस्ताक्षरित अहस्ताक्षरित में पदोन्नत किया गया है।

आकार_t

  यदि (static_cast और lt; int & gt; (sizeof (int)) gt2 = /)  

यदि आप यदि ((int) sizeof (int) & gt; = -2) संकलित करने पर सी संकलक

  पर काम कर रहा है उदाहरण के लिए, कुछ चेतावनी झंडे  -Wall  के साथ कोड को हस्ताक्षरित / अहस्ताक्षरित तुलना के बारे में संभवतः चेतावनी देनी चाहिए (यदि आप चेतावनियों की अनदेखी नहीं कर रहे हैं) 


Comments

Popular posts from this blog

mysql - How to enter php data into a html multiple select box -

java - Can't add JTree to JPanel of a JInternalFrame -

c++ - Cassandra datastax cpp driver - avoiding unnecessary copies -