การคัดเลือกใน C นั้นมีความเป็นเอกลักษณ์ไม่เหมือนภาษาอื่น มันยังไม่ฉลาด
การแคสติ้งใน C แปลงค่าจากประเภทหนึ่งไปเป็นอีกประเภทหนึ่งโดยใช้กฎที่กำหนดอย่างระมัดระวัง หากคุณจำเป็นต้องรู้จริงๆอ่านมาตรฐาน มิฉะนั้นประเด็นหลักคือ:
- การแปลงระหว่างประเภทจำนวนเต็มเก็บค่าไว้ถ้าเป็นไปได้ หากปลายทางมีบิตมากกว่านี้จะเป็นการขยายและปลอดภัยโดยทั่วไป แต่อาจเกี่ยวข้องกับส่วนขยายสัญญาณ ถ้าแคบลงบิตจะหายไป
- การแปลงระหว่างชนิดของตัวชี้รักษาค่าตัวชี้ไว้ แต่ผลลัพธ์มักไม่ได้กำหนดบ่อยครั้งที่ไม่สามารถพกพาได้และมักจะมีประโยชน์สำหรับสถานการณ์ขั้นสูง
- การแปลงระหว่างประเภทจำนวนเต็มและพอยน์เตอร์นั้นตกลงถ้าจำนวนเต็มใหญ่พอและเก็บรักษารูปแบบบิต (สิ่งที่อาจเกิดขึ้นกับค่าเฉลี่ย) หากจำนวนเต็มน้อยเกินไปผลลัพธ์จะไม่ได้กำหนด แต่ไม่มีประโยชน์ ตามกฎ 'ยาว' กว้างพอสำหรับ 'โมฆะ *' แต่ไม่รับประกัน! พอยน์เตอร์ที่สร้างด้วยวิธีนี้อาจไม่ถูกต้องในรูปแบบที่น่าสนใจทุกประเภท
- การแปลงระหว่างประเภททศนิยมและจำนวนเต็มเป็นการแปลงเลขคณิตตามที่กำหนดโดยรูทีนไลบรารีที่เหมาะสม (ด้วยการตัดปลายไม่ใช่ปัดเศษ)
- คุณสามารถส่งคืนค่าของฟังก์ชันให้เป็นโมฆะ ฉันไม่เคยมี มันไม่ทำอะไรเลย
บาง casts ถูกนำไปใช้โดยปริยายและในบางส่วนของคอมไพเลอร์จะออกคำเตือน ดีที่สุดที่จะฟังคำเตือน!
คำจำกัดความของพจนานุกรมสำหรับนักบล็อกคือละเว้นที่ดีที่สุดว่าไม่ช่วยเหลือ หลายคนได้ปลดเปลื้องคำอธิบายที่ดีขึ้นโดยการแปลงคำหรือการข่มขู่
C ++ มีความซับซ้อนมากขึ้น แต่คุณไม่ได้ถามอย่างนั้นใช่ไหม