Biến tĩnh
Lớp lưu trữ của static
xác định một biến tĩnh. Bộ sửa đổi tĩnh được chỉ định trước kiểu dữ liệu.
Ví dụ:
int somefunc()
{
static int flag=10;
...
return(flag);
}
2
3
4
5
6
Một biến tĩnh có thể được khởi tạo bởi một hằng số hoặc biểu thức hằng tương ứng với kiểu của nó, không giống như biến cục bộ đơn giản, có thể được khởi tạo bởi bất kỳ biểu thức nào.
Các biến tĩnh tồn tại từ thời điểm chương trình bắt đầu thực thi và chỉ được khởi tạo một lần trước khi hàm chuyên dụng OnInit()
được gọi. Nếu không chỉ định giá trị ban đầu, các biến của lớp lưu trữ tĩnh sẽ nhận giá trị ban đầu bằng không.
Biến cục bộ được khai báo với từ khóa static
giữ nguyên giá trị của chúng trong suốt tuổi thọ của hàm. Với mỗi lần gọi hàm tiếp theo, các biến cục bộ như vậy chứa các giá trị mà chúng có trong lần gọi trước đó.
Bất kỳ biến nào trong một khối, trừ tham số hình thức của hàm, có thể được định nghĩa là tĩnh. Nếu một biến được khai báo ở cấp độ cục bộ không phải là biến tĩnh, bộ nhớ cho biến đó được cấp phát tự động tại ngăn xếp chương trình.
Ví dụ:
int Counter()
{
static int count;
count++;
if(count%100==0) Print("Function Counter has been called ",count," times");
return count;
}
void OnStart()
{
//---
int c=345;
for(int i=0;i<1000;i++)
{
int c=Counter();
}
Print("c =",c);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Xem thêm
Kiểu dữ liệu, Đóng gói và mở rộng kiểu, Khởi tạo biến, Phạm vi hiển thị và tuổi thọ của biến, Tạo và xóa đối tượng, Thành viên tĩnh của lớp