Có cách nào để thực thi dàn diễn viên rõ ràng cho typedef cùng loại không? Tôi đã đối phó với utf8 và đôi khi tôi bị lẫn lộn với các chỉ số về số ký tự và số byte. Vì vậy, nó là tốt đẹp để có một số typedefs:Thực thi kiểm tra kiểu mạnh trong C (loại độ chính xác cho typedefs)
typedef unsigned int char_idx_t;
typedef unsigned int byte_idx_t;
Với việc bổ sung mà bạn cần một diễn viên rõ ràng giữa chúng:
char_idx_t a = 0;
byte_idx_t b;
b = a; // compile warning
b = (byte_idx_t) a; // ok
Tôi biết rằng một tính năng như vậy không tồn tại trong C, nhưng có lẽ bạn biết một mẹo hoặc một phần mở rộng trình biên dịch (gcc thích hợp hơn) làm điều đó.
EDIT tôi vẫn không thực sự thích các ký hiệu Hungarian nói chung. Tôi không thể sử dụng nó cho vấn đề này vì các quy ước mã hóa dự án, nhưng bây giờ tôi đã sử dụng nó trong một trường hợp tương tự khác, nơi mà các kiểu giống nhau và ý nghĩa rất giống nhau. Và tôi phải thừa nhận: nó giúp. Tôi sẽ không bao giờ đi và khai báo mọi số nguyên với chữ "i" bắt đầu, nhưng như trong ví dụ của Joel cho các kiểu chồng chéo, nó có thể là sự cứu sống.
Có một bài viết rất hay khác (Mặc dù tôi không đồng ý cấm goto :)) từ [Joel] (http://www.joelonsoftware.com/) có tên [Làm sai mã nhìn sai] (http://www.joelonsoftware.com/articles/Wrong.html). Tôi nghĩ rằng nó rất liên quan đến câu hỏi của bạn ngay cả khi không có kết nối trực tiếp. – Ilya
Điều thú vị nhất và quan trọng nhất trong bài viết đó, IMHO, là một chút về lịch sử của ký hiệu Hungary. Veeery thú vị ... – Noein