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ả

Ứng dụng thư viện bất đồng bộ để điều khiển bất đồng bộ nhiều (hàng chục) servo - Hư cấu chăng?

Cũng đã khá lâu kể từ lúc mình xuất bản thư viện xử lý bất đồng bộ với Arduino. Tuy nhiên, mình vẫn chưa có nhiều ví dụ để thực sự kêu gọi các bạn sử dụng thư viện này trong dự án, hôm nay, sau khi được trao đổi với nhiều bạn, mình thấy vấn đề điều khiển nhiều servo có thể ứng dụng thư viện của mình vào một cách dễ dàng. Nên mình sẽ viết một bài ví dụ để hướng dẫn các bạn điều khiển rất nhiều Servo với thư viện của mình.

lên
21 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.