Test Footer 2

C Tutorial Part 16 - Biến Cấu Trúc Trong C ( Structure )


Mảng trong C thì cho phép bạn xác định kiểu của các biến có thể chứa một số mục dữ liệu cùng loại nhưng Structure là một khai báo kiểu dữ liệu người dùng có sẵn trong lập trình C, cho phép bạn kết hợp các mục dữ liệu của các loại khác nhau.
Cấu trúc này được sử dụng để đại diện cho một kỷ lục, Giả sử bạn muốn theo dõi các sách của bạn trong một thư viện. Bạn có thể muốn theo dõi các thuộc tính sau đây về cuốn sách:
  • Tiêu đề
  • Tác giả
  • Chủ đề
  • ID Sách

Định nghĩa Structure

Để khai báo Structure, bạn phải sử dụng câu structNhững khai báo struct với một kiểu dữ liệu mới, với nhiều hơn một phần tử cho chương trình của bạn. Ví dụ :
 
Các structure tag là mỗi tùy chọn và mỗi khai phần tử là một định nghĩa như biến bình thường, chẳng hạn như int i; hoặc float f; hoặc bất kỳ định nghĩa biến hợp lệ khác. Vào cuối của định nghĩa của structure, trước các dấu chấm phẩy cuối cùng, bạn có thể chỉ định một hoặc nhiều hơn các biến structure. Dưới đây là cách bạn sẽ khai báo các Book structure:
 

Truy Phần Tử Structure

Để truy cập vào bất kỳ thành viên của một cấu trúc, chúng tôi sử dụng các toán tử truy cập phần tử (.)Bạn sẽ sử dụng từ khóa struct để xác định các biến của kiểu Structure. Sau đây là các ví dụ để giải thích cách sử dụng cấu trúc:
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau đây:

Sử Dụng Structure Như Một Tham Số

Bạn có thể truyền một cấu trúc vào một hàm như là một tham số trong hàm tương tự như truyền bất kỳ biến hoặc con trỏ khác. Bạn sẽ truy cập các biến cấu trúc theo cách tương tự như bạn đã truy cập trong ví dụ trên:
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau đây:


Sử Dụng Con Trỏ Trong Structure

Bạn có thể định nghĩa các con trỏ đến Structure theo cách rất giống như bạn đã định nghĩa con trỏ đến bất kỳ biến khác như sau:
struct Books *struct_pointer;
Bây giờ, bạn có thể lưu trữ các địa chỉ của một biến cấu trúc trong các biến con trỏ được định nghĩa ở trên. Để tìm địa chỉ của một biến cấu trúc, đặt dấu & trước tên của cấu trúc như sau:
struct_pointer = &Book1;
Để truy cập các phần tử của một Structure bằng cách sử dụng một con trỏ đến Structure đó, bạn phải sử dụng toán tử -> như sau:
struct_pointer->title;
Hãy để chúng tôi viết lại ví dụ trên bằng cách sử dụng con trỏ cấu trúc, hy vọng điều này sẽ dễ dàng cho bạn dẽ hiểu hơn :
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra các kết quả sau đây:

Bit Fields

Bit Fields allow the packing of data in a structure. This is especially useful when memory or data storage is at a premium. Typical examples:
  • Packing several objects into a machine word. e.g. 1 bit flags can be compacted.
  • Reading external file formats -- non-standard file formats could be read in. E.g. 9 bit integers.
C allows us do this in a structure definition by putting :bit length after the variable. For example:

Here, the packed_struct contains 6 members: Four 1 bit flags f1..f3, a 4 bit type and a 9 bit my_int.
C automatically packs the above bit fields as compactly as possible, provided that the maximum length of the field is less than or equal to the integer word length of the computer. If this is not the case then some compilers may allow memory overlap for the fields whilst other would store the next field in the next word.

Share on Google Plus

About Unknown

0 nhận xét:

Đăng nhận xét