Kiểu Dữ Liệu Sử Dụng Thư Viện Stdint.h Trong C/C++ - TAPIT
Có thể bạn quan tâm
C/C++ cung cấp nhiều kiểu dữ liệu khác nhau để người dùng lập trình. Một cách phổ biến thì mọi người hay dùng những kiểu dữ liệu như: kiểu int để lưu số nguyên, kiểu char để lưu kí tự, kiểu float để lưu số thực…vv… Tuy nhiên, tùy vào kiến trúc, nền tảng của một số hệ thống hoặc trình biên dịch mà chúng ta sẽ có những điểm khác nhau sau: – Các kiểu số nguyên (char, int…) tùy mỗi trình biên dịch mà nó có thể là số có dấu (signed char, signed int) hoặc không dấu (unsigned char, unsigned int), điều này ảnh hưởng đến phạm vi giá trị có thể được lưu trữ. – Kích thước của biến, trong một số hệ thống máy tính cũ, hoặc trên Arduino Uno…, thì kích thước kiểu int chỉ có 2 byte thay vì 4 byte.
Vậy, khi chuyển đổi code C/C++ từ nền tảng này sang nền tảng khác, hoặc từ môi trường phát triển IDE này sang IDE khác thì người phát triển không chỉ phải chú ý đến kích cỡ dữ liệu mà còn phải hiểu IDE đó cấu hình kiểu dữ liệu như thế nào.
Để giải quyết vấn đề trên, một giải pháp đơn giảng là các bạn có thể sử dụng thư viện stdint.h, thư viện này giúp các bạn lưu trữ và làm việc với dữ liệu một cách rõ ràng ở cấp độ bit.
| C type | stdint.h type | Bits | Sign | Range |
| char | uint8_t | 8 | Unsigned | 0 .. 255 |
| signed char | int8_t | 8 | Signed | -128 .. 127 |
| unsigned short | uint16_t | 16 | Unsigned | 0 .. 65,535 |
| short | int16_t | 16 | Signed | -32,768 .. 32,767 |
| unsigned int | uint32_t | 32 | Unsigned | 0 .. 4,294,967,295 |
| int | int32_t | 32 | Signed | -2,147,483,648 .. 2,147,483,647 |
| unsigned long long | uint64_t | 64 | Unsigned | 0 .. 18,446,744,073,709,551,615 |
| long long | int64_t | 64 | Signed | -9,223,372,036,854,775,808 .. 9,223,372,036,854,775,807 |
Hi vọng bài viết có thể giúp các bạn có 1 thói quen khai báo và sử dụng kiểu dữ liệu mới tốt hơn, có thể hiểu về kiểu dữ liệu để tránh được các lỗi sai cơ bản, và cũng không thấy xa lạ khi tham khảo một file code nào đó mà có các kiểu dữ liệu int8_t, int8_t, uint16_t, int16_t, uint32_t, int32_t…
[HỌC ONLINE: LẬP TRÌNH VI ĐIỀU KHIỂN STM32, VI XỬ LÝ ARM CORTEX – M]
Xem thêm: Tổng hợp các bài hướng dẫn Lập trình vi điều khiển STM32 tại đây.
Thuong Nguyen
Từ khóa » Khai Bao Uint8_t Trong C
-
4.0 Sử Dụng Thư Viện Cstdint - Khóa Học C++
-
Khi Nào Nên Dùng Int32_t Thay Vì Int ? | CppDeveloper
-
Int8_t Và Uint8_t Có Phải Là Kiểu Char Không? - HelpEx
-
Sự Khác Biệt Giữa Uint8 Và Uint8_T Là Gì, Kiểu Dữ Liệu Sử Dụng ...
-
C Cơ Bản: Từ Khóa Typedef - DevIOT
-
C++ — Uint8_t Không Thể được In Bằng Cout
-
Int8_t Và Uint8_t Có Phải Là Loại Char Không? - C++ - Wake-up
-
Tự Học C/C++ | Tìm Hiểu Về Số Nguyên Có Chiều Rộng Cố định Và Size_t
-
Lập Trình STM32 - Kiểu Dữ Liệu Và Nhập Xuất Cơ Bản Trong C
-
Kiểu Và Khai Báo Biến Trong C – Wikipedia Tiếng Việt
-
Xử Lý Triệt Để Lỗi Logic Với Thư Viện LibFuzzer - CodeLearn
-
Sử Dụng Struct Trong C - HgN Blog
-
Truyền Các Số Kiểu Long, Int, Float Trong Giao Tiếp Serial (UART)