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++.

  1. Automatic
  2. Register
  3. Static
  4. External
  5. 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.

Chúng ta không thể lấy địa chỉ của biến trong thanh ghi

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;