Sự khác nhau giữa union và struct?

Sign Up

Log In

Sự khác nhau giữa union và struct?

Mọi người cho em hỏi giữa union và struct nó khác nhau như thế nào ạ

Hình như khác nhau ở chỗ, struct cấp phát bộ nhớ cho mỗi thành phần của nó một vùng nhớ khác nhau, còn union thì tất cả thành phần dùng dung 1 vùng nhớ, và vùng nhớ này có kích thước là kích thước của phần tử lớn nhất trong union.

7 Likes

Vậy thì trong trường hợp nào mình sẽ dùng struct và khi nào nên dùng union vậy anh ? :slight_smile: , em có đọc qua cái union rồi cơ mà toàn toàn thấy mọi người toàn dùng struct chứ ít ai xài tới union :slight_smile: .

1 Like

ví dụ mình có một dữ liệu có thể lưu ở 2 dạng, ví dụ kiểu chữ và kiểu số chẳng hạn (trong các tờ biên lai thu tiền)

2 Likes

Dùng struct se giúp cho được việc tối ưu sử dụng bộ nhớ hơn, tránh việc thiếu bộ nhớ. chẳng hạn như bây giờ bộ nhớ bạn dùng union thì bạn sẽ phải tìm khoảng vùng nhớ lớn vừa đủ so với kích thước của phần tử lớn nhất trong khi đó dùng struct thì bạn sẽ cấp phát được nhanh hơn do bạn cứ gặp vùng nhớ nào còn thừa của bộ nhớ thì sẽ cấp cho kích thước của phần tử tương ứng. Cái này bạn đọc thêm kiến thức lý thuyết hệ điều hành bạn sẽ hiểu.

3 Likes

bài này giải thích khá rõ


STDIO

struct Và union | Bài viết | STDIO

Bên cạnh những kiểu dữ liệu có sẵn như char, int, float,… C++ cũng cho phép các lập trình viên tự định nghĩa kiểu dữ liệu để phù hợp với mục đích cũng như tạo mã nguồn tối ưu nhất. Bài viết này sẽ tiếp tục trình bày về kiểu dữ liệu người dùng tự định…

cho phép mình update lại đường link ạ, vì đường link cũ không tồn tại

3 Likes

Small string optimization :smiley:
Type punning
Giả lập đa hình (!)

1 Like

Home
Categories
FAQ/Guidelines
Terms of Service
Privacy Policy


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?