Title Image

Blog Logo

Union Example (1)

🌱Union Example (1)

    Bài viết trước mình có share về Struct vs Union: Đọc lại tại đây!

    Bài viết này sẽ nếu một ví dụ cơ bản về việc sử dụng Union.

    👉 Cơ bản thì Union nó có kích thước bằng phần tử có kích thước lớn nhất trong nó, vì vậy, nếu nó chứa nhiều phần tử thì nhất định chúng bị đè lên nhau 😃 Điều này nghe có vẻ bất lợi vì nó có thể gây mất hoặc làm sai dữ liệu.

    👉 Tuy nhiên, nếu sử dụng khéo léo thì những dữ liệu này sẽ không bị mất, chẳng hạn có thể kết hợp các kiểu dữ liệu liên tục như mảng, struct, ...

    🌱 Ví dụ, truyền 1 số thực (kiểu float) qua cổng Serial (8 bits). Mỗi lần gửi dữ liệu chỉ truyền đi được 1 byte. Chúng ta có thể kết hợp số float này với một mảng các byte (cụ thể là 4 bytes) để truyền đi từng byte một.

    Nếu không dùng Union???

  • Cần khai báo 1 số float để lưu số thực -> mất 4 bytes
  • Cần khai báo 1 mảng 4 byte để lưu 4 byte -> mất 4 bytes
  • Cần copy data từ float qua mảng 4 bytes để gửi -> mất time 🙂

    👉 Nếu sử dụng Union thì đơn giản hơn nhiều rồi, 4 byte Union sẽ tự động được copy vào mảng 4 byte kia, và chúng ta chỉ mất 4 bytes (thay vì 8 bytes) để lưu dữ liệu cho công việc này.

    Hãy cân nhắc sử dụng Union trong các ứng dụng của bạn :D

    Ví dụ tiếp theo là Sử dụng Union để quản lý các sự kiện

>>>= Follow ngay =<<<

💚 Kênh Youtube Lập trình - Điện tử 💚

Để nhận được những bài học miễn phí mới nhất nhé 😊


Union Example (2)

Đăng nhận xét

0 Nhận xét