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ả

ESP8266 kết nối Internet - Phần 4: Kết nối Internet cho dự án không cần NAT Port, không cần mua server, không cần Blynk

Ở 3 phần trước, mình đã hướng dẫn các bạn toàn bộ kỹ thuật để xây dựng một chương trình webapp để điều khiển, đọc cảm biến, điều khiển thiết bị trong mạng LAN (wifi). Và, bây giờ là lúc các bạn đưa sản phẩm của mình ra ngoài Internet! Và với cách của mình sẽ giới thiệu tiếp đây, các bạn sẽ không cần phải NAT port, không cần phải mua server hàng tháng và hơn hết là không cần phải dùng Blynk. 

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

iNut platform là gì?

Nhắc tới dòng mạch iNut dùng để lập trình, cái đầu tiên mà người ta thường nói tới chính là dòng iNut Cảm biến – một trong các mạch cho việc lập trình IoT. Hiện dòng mạch này đã phát triển tới thế hệ thứ 2 (iNut Sensor R2). Bạn sẽ bắt đầu đến với nền tảng iNut Platform thông qua mạch này. Bạn có thể dùng firmware iNut cảm biến cũng được nhưng bạn nên dùng bo mạch iNut Sensor R2 vì nó rất gọn và tương thức với Arduino Uno và Arduino Mega.

lên
4 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: