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ả

Giấy phép nguồn mở, giấy phép tài liệu mở - Quyền lợi, nghĩa vụ của bạn trong thế giới nguồn mở

Trong thời đại số này, việc tiếp cận và sử dụng những tri thức đã không còn khó khăn, bạn chỉ cần một trình duyệt và một máy tính cùng với đường truyền mạng mà đã có thể truy cập vào nguồn tri thức rộng lớn trên thế giới. Nhưng, có bao giờ bạn tự nghĩ, ngoài quyền lợi cực lớn là được tiếp xúc với tri thức mở và được tác giả hỗ trợ khi gặp lỗi, bạn có trách nhiệm và nghĩa vụ gì? Và khi là bạn là tác giả, bạn sẽ được những quyền gì và với việc ý thức được quyền của mình, bạn sẽ cảm thấy tự tin hơn trong thế giới nguồn mở. Bạn sẽ hiểu được: không phải thứ gì mình có source thì nó đều là "nguồn mở", không phải thứ gì cho mình dùng miễn phí đều là nguồn mở,... Ý thực được điều này, giúp bạn đi nhanh và xa trong thế giới nguồn mở thế giới!

lên
12 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.