Title Image

Blog Logo

Các lớp lưu trữ trong C - Storage Class

🌱 Các lớp lưu trữ trong C - Storage Class

    Lớp lưu trữ (Storage Class) định nghĩa phạm vi và vòng đời của biến và/hoặc các hàm bên trong một chương trình, thường đứng trước kiểu dữ liệu mà chúng tác động.

    Trong C chúng ta có 4 kiểu lớp lưu trữ như sau:

    👉 Lớp lưu trữ Auto

    Đây là lớp lưu trữ mặc định cho tất cả các biến trong C. Và vị trí cũng như phạm vi thực hiện của các biến này sẽ phụ thuộc vào Scope - vị trí của các biến đó trong chương trình. Về cơ bản một biến sẽ có 2 scope:

  • Local - Các biến được khai báo bên trong các hàm. Các biến Local Auto sẽ được khởi tạo trên stack khi gọi hàm và chỉ tồn tại bên trong hàm.
  • Global - Các biến được khai báo bên ngoài tất cả các hàm. Biến Global Auto sẽ được khởi tạo khi bắt đầu chương trình trên vùng nhớ data/bss, và tồn tại trong suốt thời gian hoạt động của chương trình.
    Cũng như các biến này sẽ được sử dụng trong tất cả các hàm của chương trình, và có thể được sử dụng chung cho tất cả các file bằng từ khóa Extern (sẽ nhắc đến bên dưới).

    👉 Lớp lưu trữ Register

    Dùng để định nghĩa các biến mà nên được lưu giữ trong một thanh ghi (của CPU) thay vì RAM.

        => biến có kích cỡ tối đa bằng với kích cỡ thanh ghi (tức là nếu biến char và thanh ghi 32-bits thì tự động biến này sẽ mang kích cỡ 32-bits nếu được đặt trên thanh ghi) và không thể truy xuất tới địa chỉ của biến này (vì không có địa chỉ bộ nhớ).

    Thường dùng cho các biến yêu cầu truy cập nhanh như biến đếm.

        register int count;

    👉 Lớp lưu trữ Static

    Dùng để nói cho compiler biết phải giữ một biến cục bộ tồn tại trong toàn bộ thời gian sống của chương trình thay vì tạo và hủy biến mỗi lần nó vào và ra khỏi phạm vi biến.

    Đối với biến toàn cục, nó cho biết biến có giới hạn trong tập tin mà nó được khai báo.

        => Các biến static cho phép nó duy trì giá trị giữa các lần gọi hàm.

    👉 Lớp lưu trữ Extern

    Được dùng phổ biến khi có hai hoặc nhiều file chia sẻ cùng biến hay hàm toàn cục. (Chẳng hạn có 1 biến đếm mà muốn nó đếm cả trong file khác thì cần dùng extern).

    Biến extern chỉ được khai báo và khởi tạo 1 lần tại 1 file, và những file khác muốn dùng nó thì cần thêm từ khóa extern ở trước :)))


>>>= Follow ngay =<<<

💚 Kênh Youtube Lập trình - Điện tử 💚

Để nhận được những bài học miễn phí mới nhất nhé 😊

Đăng nhận xét

0 Nhận xét