আমি জিএনইউর সি ++ সংকলকটিতে এই কোডটি চেষ্টা করছি এবং এর ব্যবহার বুঝতে অক্ষম:
#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;
}
আমি যখন মন্তব্য করা লাইনটি অসম্পূর্ণ করি, কোডটি সংকলন করে না এবং একটি ত্রুটি দিচ্ছে:
ত্রুটি: দীর্ঘ ধরণের জন্য পূর্ণসংখ্যার ধ্রুবক খুব বড়
তবে, কোডটি যেমন হয় তেমন সংকলিত হয় এবং কার্যকর হয়, এটি 10000000000 এর চেয়ে অনেক বড় মান উত্পাদন করে।
কেন?
<stdint.h>
এবং ব্যবহারের পরামর্শ দিচ্ছিuint64_t
। একটি 64 বিট মান প্রদর্শন করতে,printf( "%" PRIu64 "\n", val);