Trong ngôn ngữ C, cả biến toàn cục và biến tĩnh đều phải được khởi tạo với các giá trị không đổi. Điều này là do giá trị của các biến này phải được biết trước khi bắt đầu thực thi. Một lỗi sẽ được tạo ra nếu các giá trị hằng số không được cung cấp cho các biến toàn cục và biến tĩnh.
Một chương trình chứng minh việc khởi tạo các biến toàn cục và biến tĩnh được đưa ra như sau.
Ví dụ
#include <stdio.h> int a = 5; static int b = 10; int main() { printf("The value of global variable a : %d", a); printf("\nThe value of global static variable b : %d", b); return 0; }
Đầu ra
Kết quả của chương trình trên như sau.
The value of global variable a : 5 The value of global static variable b : 10
Bây giờ, chúng ta hãy hiểu chương trình trên.
Biến toàn cục a có giá trị 5 và biến tĩnh b có giá trị 10. Vì vậy, chương trình này hoạt động theo yêu cầu.
Nếu hằng số không được sử dụng để khởi tạo biến toàn cục và biến tĩnh, điều này sẽ dẫn đến lỗi. Một chương trình chứng minh điều này như sau.
#include <stdio.h> int func() { return 25; } int main() { static int a = func(); printf("%d ", a); }
Chương trình trên dẫn đến lỗi "phần tử khởi tạo không phải là hằng số". Vì vậy, các biến toàn cục và biến tĩnh chỉ nên được khởi tạo bằng hằng số.