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ả

MJPG Streamer vs Intel Galileo - Truyền hình ảnh từ webcam trong mạng LAN với Intel Galileo

Vấn đề truyền hình ảnh từ webcam trong mạng LAN không phải là một vấn đề mới trong việc lập trình nhúng. Ví dụ như trên Raspberry Pi, chúng ta hoàn toàn có thể sử dụng MJPG Streamer để làm được việc này. Tuy nhiên, khác với Raspberry Pi, Intel Galieo không đơn giản như vậy, bởi vì chưa có một bài viết hoàn chỉnh chỉ về vấn đề này trên cộng đồng Intel Galileo thế giới. Vì vậy, mình muốn đóng góp một phần nhỏ để các bạn có thể làm được điều này trên con Intel Galileo của mình (không phân biệt Intel Galileo Gen 1 hay Intel Galileo Gen 2 nhé).

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

Xây dựng phong trào "Chia sẻ tình yêu với Arduino"

Với mong muốn cháy bỏng, đó là xây dựng được một cộng đồng Arduino Việt Nam, nơi mà ở đó, các bạn có thể học tập, trao đổi, chia sẻ mọi thứ từ kiến thức, module cho đến kinh phí làm dự án với tinh thần chia sẻ và quan tâm. Với tinh thần đó, hiện nay, Cộng đồng Arduino Việt Nam của chúng ta đã trở thành nơi duy nhất có uy tín trong cộng đồng Việt Nam, nơi quy tụ các bạn yêu thích Tự động hóa nói chung và Arduino nói riêng, cùng nhau chia sẻ những khối kiến thức được tích lũy qua quá trình học tập nghiên cứu. Trên tinh thần đó, hôm nay, chúng ta sẽ cùng nhau đi xa hơn với việc cùng nhau gây dựng phong trào chia sẻ module, chia sẻ tình yêu với Arduino. Hãy cùng đọc, cảm nhận và tham gia cùng chúng tôi nhé.

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