के लिए पूर्णांक निरंतर बहुत बड़ा है चेतावनी से छुटकारा पाने के लिए मैं (प्रोग्रामेटिक रूप से) क्या कर सकता हूं?जी ++: चेतावनी: 'लंबे' प्रकार
...
unsigned long long v=(unsigned long long)0xffffeeeeddddcccc;
...
g++ main.cpp -o main
main.cpp:6: warning: integer constant is too large for ‘long’ type
लेकिन जब मैं चलाने के रूप में उम्मीद कार्यक्रम सब कुछ ठीक है:
./main
sizeof(unsigned long long)==8
value of v==0xffffeeeeddddcccc
इस्तेमाल किया पर्यावरण:
- उबंटू-कार्मिक 32 बिट
- जी ++ संस्करण: v4.4.1
संपादित: यहाँ पूर्ण और compilable main.cpp
#include <iostream>
#include <iomanip>
using namespace std;
int main(void) {
unsigned long long v=(unsigned long long)0xffffeeeeddddcccc;
const unsigned v_size = sizeof(unsigned long long);
cout << "sizeof(unsigned long long)==" << v_size << endl;
cout << "value of v==0x" << setw(v_size) << setfill('0') << hex << v << endl;
return 0;
}
मैंने पहले कभी यह 'ull' चीज़ नहीं देखी है। क्या आप मुझे एक संदर्भ दे सकते हैं? –
'ull' नए सी ++ मानक का हिस्सा है। जी ++ 4.4.1 इस प्रत्यय का समर्थन करता है। –
मैं 'यूएलएल' और पूंजी अक्षरों में अन्य प्रत्यय लिखना पसंद करता हूं ताकि वे दृष्टि से अलग हों। 'यू' के साथ यह शायद चिंता का बड़ा नहीं है, लेकिन केवल 'एल' या 'एल' के साथ इसे '1'' के लिए गलती करना बहुत आसान है। – JaakkoK