9 ขนาดข้อมูลตัวเลข


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