Computer >> Máy Tính >  >> Lập trình >> lập trình C

Các lớp lưu trữ trong C

Trong ngôn ngữ C, các tính năng của biến và hàm được mô tả bởi các lớp lưu trữ như khả năng hiển thị và phạm vi của biến hoặc hàm q.

Có bốn loại lớp lưu trữ trong ngôn ngữ C:Biến tự động, Biến ngoài, Biến tĩnh và biến Đăng ký.

tự động

Lớp lưu trữ tự động là lớp lưu trữ mặc định cho tất cả các biến cục bộ. Nó được tạo ra khi hàm được gọi. Khi hoàn thành việc thực thi chức năng, các biến sẽ tự động bị hủy.

Chúng còn được gọi là biến cục bộ vì chúng là cục bộ của một hàm. Theo mặc định, chúng được trình biên dịch gán giá trị rác.

Phạm vi - biến tự động là các biến cục bộ của khối chức năng.

Giá trị mặc định - Giá trị rác là giá trị được khởi tạo mặc định.

Thời gian tồn tại - Thời gian tồn tại của biến tự động bị ràng buộc bởi khối mà nó được xác định.

Đây là một ví dụ về biến tự động trong ngôn ngữ C,

Ví dụ

#include <stdio.h>
int main() {
   auto int a = 28;
   int b = 8;
   printf("The value of auto variable : %d\n", a);
   printf("The sun of auto variable & integer variable : %d", (a+b));
   return 0;
}

Đầu ra

The value of auto variable : 28
The sun of auto variable & integer variable : 36

extern

Các biến bên ngoài còn được gọi là biến toàn cục. Các biến này được định nghĩa bên ngoài hàm. Các biến này có sẵn trên toàn cầu trong suốt quá trình thực thi hàm. Giá trị của các biến toàn cục có thể được sửa đổi bởi các hàm.

Phạm vi - Chúng không bị ràng buộc bởi bất kỳ chức năng nào. Chúng ở khắp mọi nơi trong chương trình, tức là toàn cầu.

Giá trị mặc định - Giá trị khởi tạo mặc định của các biến toàn cục là Zero.

Thời gian tồn tại - Cho đến khi kết thúc quá trình thực thi chương trình.

Đây là một ví dụ về biến extern trong ngôn ngữ C,

Ví dụ

#include <stdio.h>
extern int x = 32;
int b = 8;
int main() {
   auto int a = 28;
   extern int b;
   printf("The value of auto variable : %d\n", a);
   printf("The value of extern variables x and b : %d,%d\n",x,b);
   x = 15;
   printf("The value of modified extern variable x : %d\n",x);
   return 0;
}

Đầu ra

The value of auto variable : 28
The value of extern variables x and b : 32,8
The value of modified extern variable x : 15

tĩnh

Biến static chỉ được khởi tạo một lần. Trình biên dịch vẫn tồn tại biến cho đến khi kết thúc chương trình. Biến static có thể được định nghĩa bên trong hoặc bên ngoài hàm.

Phạm vi - Chúng là cục bộ của khối.

Giá trị mặc định - Giá trị khởi tạo mặc định là Zero.

Thời gian tồn tại - Cho đến khi kết thúc quá trình thực thi chương trình.

Đây là một ví dụ về biến tĩnh trong ngôn ngữ C,

Ví dụ

#include <stdio.h>
int main() {
   auto int a = -28;
   static int b = 8;
   printf("The value of auto variable : %d\n", a);
   printf("The value of static variable b : %d\n",b);
   if(a!=0)
   printf("The sum of static variable and auto variable : %d\n",(b+a));
   return 0;
}

Đầu ra

The value of auto variable : -28
The value of static variable b : 8
The sum of static variable and auto variable : -20

đăng ký

Các biến thanh ghi yêu cầu trình biên dịch lưu trữ biến trong thanh ghi CPU thay vì bộ nhớ. Các biến được sử dụng thường xuyên được lưu giữ trong thanh ghi và chúng có khả năng truy cập nhanh hơn. Chúng tôi không bao giờ có thể lấy được địa chỉ của các biến này.

Phạm vi - Chúng là cục bộ của hàm.

Giá trị mặc định - Giá trị khởi tạo mặc định là giá trị rác ..

Thời gian tồn tại - Cho đến khi kết thúc quá trình thực thi khối mà nó được xác định.

Đây là một ví dụ về biến thanh ghi trong ngôn ngữ C,

Ví dụ

#include <stdio.h>
int main() {
   register char x = 'S';
   register int a = 10;
   auto int b = 8;
   printf("The value of register variable b : %c\n",x);
   printf("The sum of auto and register variable : %d",(a+b));
   return 0;
}

Đầu ra

The value of register variable b : S
The sum of auto and register variable : 18