Biến toàn cục là những biến có phạm vi hoạt động toàn chương trình, có thời gian sống từ lúc chương trình bắt đầu đến khi chương trình kết thúc. Chúng được khai báo toàn cục, nghĩa là bên ngoài mọi hàm, kể cả main. Biến toàn cục có thể khai báo ở bất kỳ chỗ nào miễn là bên ngoài mọi hàm, và trước lần sử dụng đầu tiên. Theo quy ước biến toàn cục được khai báo ở đầu chương trình, dưới các chỉ thị tiền xử lý.
Một biến toàn cục có thể được truy cập từ bất kỳ đâu trong chương trình. Nó là dữ liệu chung của chương trình.Khi một biến toàn cục trùng tên với một biến cục bộ thì biến toàn cục bị biến cục bộ “che” mất. Xem xét chương trình sau:
C++ Code:
Lựa chọn code | Ẩn/Hiện code #include <iostream>
using namespace std;
int num=100; // biến toàn cục tên num
int func(){
int num=20; // biến cục bộ tên num
return num; }
int main(){
cout << "Local: " << func() << endl; return 0;
}
Để thông báo cho chương trình biết ta đang làm việc với biến toàn cục ta có thể dùng toán tử phân giải phạm vi (scope resolution operator) :: như câu lệnh sau:
C++ Code:
Lựa chọn code | Ẩn/Hiện code cout << ::num << endl; // làm việc với biến toàn cục num
Thông thường ta nên hạn chế sử dụng biến toàn cục đến mức tối đa có thể vì những lý do sau:
• Thứ nhất: biến toàn cục chiếm dụng bộ nhớ trong toàn bộ thời gian chương trình thực thi,
ngay cả khi chúng không cần thiết.
• Thứ hai: khi sử dụng biến cục bộ là đủ, thì việc sử dụng biến toàn cục làm cho các hàm mất
đi tính độc lập, vì phải phụ thuộc vào những yếu tố bên ngoài hàm.
• Thứ ba: sử dụng nhiều biến toàn cục sẽ rất dễ dẫn đến lỗi vì các hàm có thể lạm dụng biến
toàn cục, làm sai lệch các giá trị khiến các hàm khác sử dụng sau nó nhận giá trị sai, và nhiều hiệu ứng phụ khác nữa.
Hết bài 7c