- Kết quả trả về của hàm là ký tự được ấn.
HÀM MAIN CÓ THAM SỐ – CON TRỎ HÀM
2.6. Thành phần kiểu FIELD (nhóm bit)
Ngôn ngữ C cho phép chúng ta khai thác đến từng bit như là một thành phần riêng biệt của một cấu trúc. Một thành phần như vậy được gọi là một field (tạm dịch là một vùng). Khai báo cho một cấu trúc có các thành phần là các field được thực hiện tương tự như khai báo một cấu trúc bình thường:
struct struct_field {
unsigned field1 :số_bit1; int field2 :số_bit2; ...
}var_field;
trong khai báo cấu trúc field trên, tên các thành phần là field1, field2 v.v. Kiểu của các thành phần phải là int hay unsigned int. Độ dài tính theo bit của các field được ghi ngay sau tên trường và được phân tách với tên trường bằng dấu hai chấm. Độ dài này không được vượt quá 16 bits. Xét câu lệnh khai báo sau:
Ví dụ
struct date {
unsined int day: 5;/*giá trị ngày từ 1 đến 31*/ unsined month : 4;/*tháng từ 1 đến 12*/
unsined year :5; /*chỉ xét 32 năm:1980-2011*/ int t: 2; /*0:mm-dd*/
}x;
câu lệnh khai báo trên định nghĩa một kiểu cấu trúc field với tên là date kèm theo một biến là x. Theo khai báo trên, kích thước của cấu trúc là 24 bit hay 3 byte.
Lưu ý
Liên quan đến các cấu trúc kiểu field chúng ta có một số điểm cần lưu ý sau:
Không cho phép lấy địa chỉ của các thành phần kiểu field. Nghĩa là phép toán dạng &x.a là không hợp lệ.
Không thể xây dựng các mảng có kiểu cấu trúc field. Một hàm không thể trả về một giá trị có kiểu cấu trúc field.
Khi muốn bỏ qua một số bit nào đó chúng ta bỏ trống tên trường. Ví dụ struct {
int :8; /*Bỏ qua 8 bit*/
int :x; /*x là thành phần chứa 8 bit cao của một word*/ }y;
Ứng dụng
Các cấu trúc có thành phần kiểu field được sử dụng nhằm: Tiết kiệm bộ nhớ.
Dùng trong các khai báo kiểu hợp (union) để lấy ra các bit của một từ nào đó (xem thêm phần UNION để hiểu rõ hơn nhận xét này).