ฉันมีปัญหาแปลก ๆ เกี่ยวกับการทำงานกับจำนวนเต็มใน C ++
ฉันเขียนโปรแกรมอย่างง่ายที่กำหนดค่าให้กับตัวแปรแล้วพิมพ์มัน แต่มันไม่ทำงานอย่างที่คาดไว้
โปรแกรมของฉันมีโค้ดสองบรรทัดเท่านั้น:
uint8_t aa = 5;
cout << "value is " << aa << endl;
ผลลัพธ์ของโปรแกรมนี้คือ value is
คือมันพิมพ์เปล่าaa
ๆ
เมื่อฉันเปลี่ยนuint8_t
ไปuint16_t
โค้ดข้างต้นทำงานเช่นเสน่ห์
ฉันใช้ Ubuntu 12.04 (แม่นยำ Pangolin), 64- บิตและเวอร์ชั่นคอมไพเลอร์ของฉันคือ:
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)