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
4 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.

Sinh nhật lần thứ 11 của nền tảng Arduino - Món quà ý nghĩa cho Newbie từ Cộng đồng Việt Nam

Nền tảng Arduino đã có mặt ở trên thế giới được 11 năm, ở Việt Nam, nó cũng đã nhanh gia và do nhập vào những năm 2010 bởi những thành viên trong BQT Cộng đồng Arudino Việt Nam. Và cũng đã gần 2 năm kể từ ngày Cộng đồng Arduino Việt Nam chính thức đi vào hoạt động. Đây là nơi để các bạn - không phân biệt bất cứ ngành nghề, độ tuổi - quy tụ với nhau để cùng phát triển một thế hệ trẻ Việt Nam thông minh hơn dựa trên tinh thần vì cộng đồng nguồn mở và sự chia sẻ - quan tâm (share & care) giữa các thành viên trong Cộng đồng Việt Nam.

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