static - biến tĩnh

Giới thiệu

Biến tĩnh là biến sẽ được tạo ra duy nhất một lần khi gọi hàm lần đầu tiên và nó sẽ không bị xóa đi để tạo lại khi gọi lại hàm ấy. Đây là sự khác biệt giữa biến tĩnh và biến cục bộ.

Biến tĩnh là loại biến lưỡng tính, vừa có tính chất của 1 biến toàn cục, vừa mang tính chất của 1 biến cục bộ:

  • Tính chất 1 biến toàn cục: biến không mất đi khi chương trình con kết thúc, nó vẫn nằm trong ô nhớ của chương trình và được tự động cập nhật khi chương trình con được gọi lại. Giống như 1 biến toàn cục vậy.
  • Tính chất 1 biến cục bộ: biến chỉ có thể được sử dụng trong chương trình con mà nó được khai báo.

Để khai báo bạn chỉ cần thêm từ khóa "static" trước khai báo biến. Xem ví dụ để rõ hơn.

Ví dụ

void setup(){
  Serial.begin(9600); // Khởi tạo cổng Serial ở baudrate 9600
}
void loop() {
  testStatus();// Chạy hàm testStatus
  delay(500); // dừng 500 giây để bạn thấy được sự thay đổi
}

void testStatus() {
  static int a = 0;// Khi khai báo biến "a" là biến tĩnh
  // thì duy nhất chỉ có 1 lần đầu tiên khi gọi hàm testStatus
  // là biến "a" được tạo và lúc đó ta gán "a" có giá trị là 0

  a++;
  Serial.println(a);
  // Biến a sẽ không bị mất đi khi chạy xog hàm testStatus
  // Đó là sự khác biệt giữa biến tĩnh và biến cục bộ!
}

 

lên
3 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ả

Ra mắt thư viện iNut cho Arduino, điều khiển từ xa qua Internet bằng mạch iNut cảm biến

Bạn muốn làm thiết bị điện điều khiển từ xa, quản lý hệ thống cảm biến nhà vườn, nhà kính của mình qua Internet? Hay bạn muốn làm các startup liên quan đến nông nghiệp thông minh, nhà máy thông minh hay thành phố thông minh mà không biết bắt đầu từ đâu? Và đây, iNut Platform chính là giải pháp dành cho bạn. Qua bài viết này này, thư viện iNut cho Arduino sẽ giúp bạn thực hiện hóa vấn đề này, cùng khám phá nhé.

Nếu bạn đã từng làm qua sóng bluetooth với thư viện SerialCommand thì bạn sẽ thấy cực kỳ quen thuộc khi sử dụng thư viện iNut này!

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

LED_BUILTIN

Hầu hết các mạch Arduino đều có một pin kết nối với một on-board LED (led nằm trên mạch) nối tiếp với một điện trở. LED_BUILTIN là một hằng số thay thế cho việc tuyên bố một biến có giá trị điều khiển on-board LED. Hầu hết trên các mạch Arduino, chúng có giá trị là 13

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