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ả

Cách tự "hack" điều khiển thiết bị điện trong nhà chỉ với 30 phút

Một thiết bị điện thông minh hiện đại là phải "có thể lập trình được" để có thể làm theo ý mình. Với cuộc cách mạng công nghiệp 4.0, những sản phẩm IoT hiện này đã rất phổ biến. Những ý tưởng tưởng chừng như "điên rồ" trước đây thì nay đã trở thành hiện thực. Hãy cùng tôi "hack" vào cái công tắc điện trong nhà và dùng những tấm thẻ RFID để bật tắt điện trong nhà nhé.

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

ST7565 và ESP8266 - Màn hình LCD bự chà bá chưa đến 100k cho thế giới IoT

Mình rất thích LCD ST7565 này, và đã đặt liền 4 con mà mỗi con quá rẻ có 20k. Nhưng khổ một điều, điện áp hoạt động và IO của LCD ST7565 có 3.3V. Bản thân mình lại không thích việc chơi điện trở để chơi LCD này với Arduino. Lý do đơn giản là phải hàn quá nhiều, mình lại lười crying. Hổm nay, mình đang làm loạt bài về ESP8266 và cũng phải gặp vấn đề điện trở để làm cầu phân áp khi giao tiếp giữa ESP8266 và Arduino.

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