Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Lớp lưu trữ (Storage Classes) trong C

Lớp lưu trữ mô tả đặc tính của biến/hàm: khả năng thấy (visibility), vòng đời, giá trị mặc định. Có 4 loại: auto, extern, static, register.

auto

Mặc định cho biến cục bộ. Tạo khi gọi hàm, hủy khi hàm kết thúc. Giá trị mặc định: rác.

  • Phạm vi: Khối hàm.
  • Vòng đời: Khối hàm.

Ví dụ

#include <stdio.h>
int main() {
    auto int a = 28;
    int b = 8; // ngầm auto
    printf("Auto a: %d\n", a);
    printf("Tong a+b: %d\n", a+b);
    return 0;
}

extern

Biến toàn cục. Xem chi tiết ở bài Từ khóa extern.

  • Phạm vi: Toàn chương trình.
  • Giá trị mặc định: 0.
  • Vòng đời: Cả chương trình.

static

Khởi tạo một lần. Giữ giá trị giữa các lần gọi hàm. Có thể định nghĩa trong hoặc ngoài hàm.

  • Phạm vi: Khối (nếu trong hàm) hoặc file (nếu ngoài hàm).
  • Giá trị mặc định: 0.
  • Vòng đời: Cả chương trình.

Ví dụ

#include <stdio.h>
void func() {
    static int count = 0;
    count++;
    printf("Lan goi: %d\n", count);
}
int main() {
    func(); func(); func();
    return 0;
}
Lan goi: 1
Lan goi: 2
Lan goi: 3

register

Xem chi tiết ở bài Từ khóa register.

  • Phạm vi: Hàm.
  • Giá trị mặc định: Rác.
  • Vòng đời: Khối hàm.

Bảng so sánh

LớpPhạm viMặc địnhVòng đời
autoHàmRácHàm
externToàn cục0Chương trình
staticKhối/File0Chương trình
registerHàmRácHàm