Lập trình C++ - Lớp lưu trữ
Lớp lưu trữ (Storage Classes) trong C++
Lớp lưu trữ được sử dụng để định nghĩa phạm vi và chu trình sống của biến. Có 5 lớp lưu trữ trong ngôn ngữ C++.
- Automatic
- Register
- Static
- External
- Mutable
Storage Class | Keyword | Lifetime | Visibility | Initial Value |
---|---|---|---|---|
Automatic | auto | Function Block | Local | Garbage |
Register | register | Function Block | Local | Garbage |
Mutable | mutable | Class | Local | Garbage |
External | extern | Whole Program | Global | Zero |
Static | static | Whole Program | Local | Zero |
Lớp lưu trữ Automatic
Đây là lớp lưu trữ mặc định cho tất cả các biến cục bộ. Từ khóa tự động được áp dụng cho tất cả các biến cục bộ một cách tự động.
{
auto int y;
float y = 3.45;
}
Lớp lưu trữ Register
Biến thanh ghi cấp phát bộ nhớ trong thanh ghi hơn RAM. Kích thước của nó bằng kích thước thanh ghi. Nó truy cập nhanh hơn các biến khác.
Bạn nên sử dụng biến đăng ký chỉ để truy cập nhanh như truy cập.
register int counter=0;
Lớp lưu trữ Static
Biến tĩnh được khởi tạo chỉ một lần và tồn tại cho đến khi kết thúc chương trình. Nó giữ lại giá trị của nó giữa nhiều hàm gọi.
Biến tĩnh có giá trị mặc định 0 được trình biên dịch cung cấp.
Ví dụ:
#include <iostream>
using namespace std;
void func() {
static int i=0; //static variable
int j=0; //local variable
i++;
j++;
cout<<"i=" << i<<" and j=" <<j<<endl;
}
int main()
{
func();
func();
func();
}
Kết quả:
i= 1 and j= 1
i= 2 and j= 1
i= 3 and j= 1
Lớp lưu trữ External
Biến extern được hiển thị cho tất cả các chương trình. Nó được sử dụng hai hoặc nhiều tập tin đang chia sẻ cùng một biến hoặc một hàm.
extern int counter=0;