ชนิดของข้อมูล | Format specifier |
---|---|
Char | %d ( ถ้าต้องการแสดงตัวอักษรใช้ %c ) |
signed short int | %d |
unsigned short int | %u |
signed int | %d |
unsigned int | %u |
signed long int | %ld |
unsigned long int | %lu |
signed long long int | %lld |
unsigned long long int | %llu |
float | %f |
double | %f |
ทำไมไม่ใช้ long int แทน int ทั้งหมด เพราะ long int เก็บข้อมูลได้มากกว่า int ?
เพราะว่า long int นั้นใช้พื้นที่เก็บข้อมูล (ในแรม) มากกว่า int . ถ้าโปรแกรมมีขนาดใหญ่ขึ้น การใช้ long int โดยไม่จำเป็นก็จะทำให้โปรแกรมกินหน่วยความจำของระบบเกินกว่าที่จำเป็นจริงๆ อาจทำให้ระบบโดยรวมช้าลง และไม่เกิดประโยชน์อะไรเลย. แต่บางกรณี การใช้แรมตามที่ต้องการ แม้จะเป็นจำนวนมาก ถ้าใช้อย่างถูกต้อง ก็จะทำให้โปรแกรมทำงานได้เร็วกว่าโปรแกรมที่ออกแบบมาเพื่อประหยัดแรม ตัวอย่างเช่น โปรแกรมทำการเรียงลำดับตัวเลขจากมากไปหาน้อย ( Merge sort ) , โปรแกรมการค้นหาข้อมูล ( searching )
จะเกิดอะไรขึ้นถ้าตั้งค่าข้อมูลเกินกว่าขีดจำกัด
คอมไพเลอร์อาจไม่มองว่าเป็น error แต่อาจจะแจ้งเตือน. ค่าที่มากเกินกว่าหรือน้อยกว่าขีดจำกัด จะทำการวกกลับมาตั้งค่าใหม่ ดังนั้นค่าที่ได้จริงๆจึงไม่ถูกต้อง ( คล้ายๆการเอาไม้บรรทัดที่สั้นกว่าเชือกไปวัดเชือก วัดไปหลายๆรอบ สิ้นปลายเชือกตรงไหน ก็คือค่านั้นในไม้บรรทัด )
No comments:
Post a Comment