| ชนิดของข้อมูล | 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