Có 4 lớp lưu trữ trong C:
- auto
- extern
- static
- register
Biến static
Từ khóa: static.
Phạm vi
- Biến static giữ giá trị suốt chương trình và giữa các lần gọi hàm.
- Biến static chỉ khởi tạo một lần.
Giá trị mặc định là 0.
Ví dụ 1
Chương trình C cho static storage class:
#include <stdio.h>
main() {
inc();
inc();
inc();
}
inc() {
static int i = 1;
printf("%d", i);
i++;
}
Kết quả
1 2 3
Ví dụ 2
Chương trình C khác so sánh với auto:
#include <stdio.h>
main() {
inc();
inc();
inc();
}
inc() {
auto int i = 1;
printf("%d", i);
i++;
}
Kết quả
1 1 1
Ví dụ 3
#include <stdio.h>
void function();
int main() {
function();
function();
return 0;
}
void function() {
static int value = 1;
printf("\nvalue = %d", value);
value++;
}
Kết quả
value = 1 value = 2