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ả

Code Arduino trên MÂY, bạn có muốn thử hay không?

Từ trước đến giờ, mỗi khi muốn lập trình một bé Arduino, bạn cần phải chuẩn bị driver cho Arduino (hiển nhiên buộc phải có, vì phải giao tiếp với thiết bị ngoại vi là mạch Arduino) và phần mềm lập trình Arduino IDE. Và khi bạn muốn chia sẻ code của mình cho bạn của mình thì cách đơn giản nhất là gửi file sketch cho họ, hoặc nếu cao cấp hơn là sử dụng github hoặc bitbucket (tất nhiên là phải include các thư viện bên thứ ba nếu có). Vậy vấn đề đặt ra trong ngày hôm nay là, liệu có cách nào để có thể chia sẻ sketch của mình với bạn bè và lớn hơn nữa là với cộng đồng Arduino trên thế giới (nói chung) và Việt Nam (nói riêng) hay không?

Và mình đã tìm ra câu trả lời, và không những thế, câu trả lời còn vượt ra ngoài sức mong đợi của chúng ta.

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

Phạm vi biến

Ngôn ngữ Arduino được xây dựng trên ngôn ngữ lập trình C. Các biến của Arduino, cũng như C, có một phạm trù được gọi là phạm vi biến. Điều này trái ngược với ngôn ngữ BASIC, ở ngôn ngữ BASIC này, mọi biến đều là biến toàn cục.

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