C++ Primer nóiOn biến tĩnh địa phương và toàn cầu trong C++
Mỗi biến tĩnh địa phương được khởi tạo trước khi lần đầu tiên thực hiện qua định nghĩa của đối tượng. Số liệu thống kê cục bộ là không bị hủy khi chức năng kết thúc; chúng bị phá hủy khi chương trình chấm dứt.
Biến tĩnh cục bộ có khác gì với biến tĩnh toàn cầu không? Khác thì vị trí mà chúng được khai báo, còn gì khác?
void foo() {
static int x = 0;
++x;
cout << x << endl;
}
int main (int argc, char const *argv[]) {
foo(); // 1
foo(); // 2
foo(); // 3
return 0;
}
so sánh với
static int x = 0;
void foo() {
++x;
cout << x << endl;
}
int main (int argc, char const *argv[]) {
foo(); // 1
foo(); // 2
foo(); // 3
return 0;
}
Bạn có thể đảm bảo trật tự hủy diệt với một công việc nhỏ. http://stackoverflow.com/a/335746/14065 –