Các diễn viên làm cho giá trị toán hạng để được chuyển đổi sang các loại tên trong pa-rentheses. Bất kỳ chuyển đổi cho phép (Mục 6.3.1) có thể được gọi bằng một biểu diễn. Kết quả không phải là một giá trị trái.
Ví dụ
extern char * alloc () f struct S * p;
p = (struct S *) alloc (sizeof (struct S));
Một số hiện thực của C không đúng bỏ qua dàn diễn viên nào đó có tác dụng duy nhất là làm một giá trị "hẹp" hơn so với bình thường.
Ví dụ
Giả sử rằng loại unsigned ngắn được đại diện trong 16 bit và loại không dấu được repre¬sented trong 32 bit. Sau đó, giá trị của biểu thức
(unsigned) (unsigned short) OXFFFFFF
nên OxFFFF vì các diễn viên (unsigned short) nên gây ra cụt của OxFFFFFF val¬ue đến 16 bit, và sau đó các diễn viên (unsigned) nên mở rộng giá trị đó trở lại 32 bit. Trình biên dịch thiếu không thực hiện hiệu ứng cắt ngắn này và tạo ra mã mà vượt qua các OxFFFFFF giá trị thông qua không thay đổi. Tương tự như vậy, đối với các biểu hiện
(double) (float) 3,1415926535897932384
trình biên dịch thiếu không sản xuất mã để giảm độ chính xác của xấp xỉ của K đó của một phao, nhưng đi qua các giá trị chính xác đôi không thay đổi.
Đối với tính di động tối đa sử dụng phi tiêu chuẩn trình biên dịch, các lập trình viên nên trun¬cate giá trị bằng cách lưu trữ chúng vào các biến hoặc, trong trường hợp các số nguyên, thực hiện các hoạt động tạo mặt nạ rõ ràng (chẳng hạn như với các phép toán nhị phân và-điều hành &) chứ không phải là dựa vào dàn diễn viên thu hẹp.
Tài liệu tham khảo bitwise AND điều hành 7.6. 6; chuyển đổi kiểu Ch. 6; tên loại 5,12
7.5.2 sizeof Operator
Các sizeof điều hành được sử dụng để có được kích thước của một kiểu dữ liệu hoặc đối tượng;
sizeof thể hiện:
sizeof (type-name) sizeof unary thể hiện
Các biểu sizeof có hai hình thức: các nhà điều hành sizeof tiếp theo một loại tên paren-thesized, hoặc các nhà điều hành sizeof tiếp theo là một biểu hiện toán hạng. Kết quả là một giá trị số nguyên không đổi và không bao giờ là một giá trị trái. Trong tiêu chuẩn C, kết quả của sizeof có unsigned loại nguyên size_t được định nghĩa trong file header stddef h. Triển khai C truyền thống thường sử dụng int hoặc lâu như các loại quả. Sau ưu tiên C
đang được dịch, vui lòng đợi..