Đúc trong C là duy nhất, khá giống với các ngôn ngữ khác. Nó cũng không bao giờ thông minh.
Đúc trong C chuyển đổi giá trị từ loại này sang loại khác bằng cách sử dụng các quy tắc được xác định cẩn thận. Nếu bạn thực sự cần biết, hãy đọc tiêu chuẩn. Mặt khác, các điểm chính là:
- Chuyển đổi giữa các loại số nguyên bảo tồn giá trị, nếu có thể. Nếu đích đến có nhiều bit hơn thì điều này đang mở rộng và thường an toàn, nhưng có thể liên quan đến việc mở rộng dấu hiệu. Nếu hẹp hơn, bit sẽ bị mất.
- Chuyển đổi giữa các loại con trỏ bảo tồn giá trị con trỏ, nhưng kết quả thường không được xác định, thường không di động và thường hữu ích cho các tình huống nâng cao.
- Chuyển đổi giữa các kiểu số nguyên và con trỏ là OK nếu số nguyên đủ lớn và bảo toàn mẫu bit (bất cứ điều gì có thể xảy ra với ý nghĩa). Nếu số nguyên quá nhỏ, kết quả không xác định nhưng không hữu ích. Như một quy tắc 'dài' đủ rộng cho 'void *', nhưng không có gì đảm bảo! Con trỏ được tạo theo cách này có thể không hợp lệ, trong tất cả các loại cách thú vị.
- Chuyển đổi giữa các kiểu float và số nguyên là các chuyển đổi số học như được xác định bởi một thói quen thư viện thích hợp (có cắt bớt, không làm tròn).
- Bạn có thể bỏ giá trị trả về của hàm thành void. Tôi không bao giờ có. Nó không làm gì cả.
Một số phôi được áp dụng ngầm và trong một số trình biên dịch sẽ đưa ra cảnh báo. Tốt nhất để lưu ý các cảnh báo!
Định nghĩa từ điển cho diễn viên là tốt nhất bỏ qua, như là không có ích. Nhiều diễn viên được mô tả tốt hơn bằng các điều khoản chuyển đổi hoặc ép buộc, vì vậy cũng đáng để biết những điều đó.
C ++ phức tạp hơn nhiều, nhưng bạn không hỏi điều đó, phải không?