मैं जीएनयू के सी पर इस कोड को कोशिश कर रहा हूँ ++ संकलक में और उसके व्यवहार को समझने में असमर्थ हूँ:लंबे C/C++
#include <stdio.h>;
int main()
{
int num1 = 1000000000;
long num2 = 1000000000;
long long num3;
//num3 = 100000000000;
long long num4 = ~0;
printf("%u %u %u", sizeof(num1), sizeof(num2), sizeof(num3));
printf("%d %ld %lld %llu", num1, num2, num3, num4);
return 0;
}
जब मैं टिप्पणी की लाइन uncomment, कोड संकलन नहीं करता है और एक दे रहा है त्रुटि:
error: integer constant is too large for long type
लेकिन, अगर कोड के रूप में यह है संकलित किया गया है और मार डाला जाता है, यह 10000000000.
क्यों से भी ज्यादा बड़ा मान उत्पादन होता है?
बहुत देर हो सकती है लेकिन भविष्य के पाठकों के लिए, मेरा सुझाव है कि आप ' 'का उपयोग करें और' uint64_t' का उपयोग करें। 64 बिट मान प्रदर्शित करने के लिए, 'printf ("%" PRIu64 "\ n", val); ' –
enthusiasticgeek