sizeof()

Giới thiệu

Hàm sizeof() có nhiệm vụ trả về số byte bộ nhớ của một biến, hoặc là trả về tổng số byte bộ nhớ của một mảng array.

Cú pháp

sizeof(variable) 

Tham số

variable: mọi kiểu dữ liệu hoặc mọi biến (thuộc bất cứ kiểu dữ liệu nào) hoặc một mảng.

Ví dụ

Hàm sizeof() tỏ ra rất hiệu quả trong việc kiểm tra độ dài chuỗi, nhưng bạn cần lưu ý cho về ký tự "cần cân" của Arduino. Sau đây là một ví dụ về việc đọc từng giá trị của một chuỗi cho trước. Để thấy được hiệu quả chương trình bạn hãy thử thay chuỗi trong ví dụ bằng một chuỗi khác xem.

char myStr[] = "this is a test";
int i;

void setup(){
  Serial.begin(9600);
}

void loop() {
  for (i = 0; i < sizeof(myStr) - 1; i++){
    Serial.print(i, DEC);
    Serial.print(" = ");
    Serial.write(myStr[i]);
    Serial.println();
  }
  delay(5000); // làm chậm chương trình để bạn thấy được chương trình này muốn nói lên điều gì
}

Lưu ý

Vì hàm sizeof sẽ trả về số byte bộ nhớ của một biến hay một mảng nào đó, vì vậy nếu bạn muốn ĐẾM Số phần tử của một mảng số nguyên có kiểu dữ liệu > 1 byte (như là: int, word, float,...) thì bạn cần chia số bộ nhớ của mảng cho số bộ nhớ của kiểu dữ liệu của mảng đó. Ví dụ một mảng có kiểu int.

for (i = 0; i < (sizeof(myInts)/sizeof(int)) - 1; i++) {
  // hàm làm gì đó với biến myInts[i]
}

 

Reference Tags: 
lên
14 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Servo tester với attiny85 - Mạch kiểm tra lỗi servo - Tối ưu hóa code

Bài viết của bạn quá hay :D, nhưng phần code hơi dài một tí heart. Mình có viết lại cho nó ngắn hơn nhưng vẫn đảm bảo logic đây cool.

lên
9 thành viên đã đánh giá bài viết này hữu ích.

Ra mắt thư viện iNut cho Arduino, điều khiển từ xa qua Internet bằng mạch iNut cảm biến

Bạn muốn làm thiết bị điện điều khiển từ xa, quản lý hệ thống cảm biến nhà vườn, nhà kính của mình qua Internet? Hay bạn muốn làm các startup liên quan đến nông nghiệp thông minh, nhà máy thông minh hay thành phố thông minh mà không biết bắt đầu từ đâu? Và đây, iNut Platform chính là giải pháp dành cho bạn. Qua bài viết này này, thư viện iNut cho Arduino sẽ giúp bạn thực hiện hóa vấn đề này, cùng khám phá nhé.

Nếu bạn đã từng làm qua sóng bluetooth với thư viện SerialCommand thì bạn sẽ thấy cực kỳ quen thuộc khi sử dụng thư viện iNut này!

lên
10 thành viên đã đánh giá bài viết này hữu ích.