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
12 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ả

Tạo một quy trình công nghiệp với các bước bằng Arduino - Phần 3: Giới hạn số lần chạy và kết hợp thư viện bất đồng bộ

Ở trong loạt bài này và một bài viết khác, mình đã đề cập đến vấn đề quy trình Công nghiệp (phần 1phần 2) và vấn đề xử lý bất đồng bộ trên Arduino. Hôm nay, mình muốn phát triển loạt bài này với mục đích, bạn có thể xây dựng một máy công nghiệp với các quy trình tuần tự nhưng có thể can thiệp để dừng ngay được. Ngoài ra, mình còn cập nhập thêm khả năng quy ước trước số lượt chạy của quy trình và một số API khác giúp cho các bạn có thể kết hợp lại 2 thư viện này! Để đọc hiểu, và tiếp cận nhanh bài này, các bạn cần đọc 3 bài viết mà mình có liên kết trong đoạn giới thiệu này.

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

Tự làm thiết bị bật tắt đèn điều khiển qua phần mềm iNut trên Android và iPhone

Điều khiển thiết bị điện trong nhà là một trong những mong muốn cháy bỏng nhất của mình trong quá trình tìm tòi và nghiên cứu phát triển Arduino. Với board mạch ESP8266, ước mong của mình đã trở thành hiện thực. Và mình đã thực hiện hóa nó qua dự án iNut. Và đây là thời điểm hoàn hảo để triển khai dự án điều khiển thiết bị điện trong nhà này. Hãy cùng khám phá nhé.

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