ในภาษา C ทั้งตัวแปรโกลบอลและสแตติกจะต้องเริ่มต้นด้วยค่าคงที่ เนื่องจากต้องทราบค่าของตัวแปรเหล่านี้ก่อนที่จะเริ่มดำเนินการ ข้อผิดพลาดจะถูกสร้างขึ้นหากไม่มีค่าคงที่สำหรับตัวแปรโกลบอลและสแตติก
โปรแกรมที่แสดงการเริ่มต้นของตัวแปรโกลบอลและสแตติกมีดังนี้
ตัวอย่าง
#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;
} ผลลัพธ์
ผลลัพธ์ของโปรแกรมข้างต้นมีดังนี้
The value of global variable a : 5 The value of global static variable b : 10
ตอนนี้ เรามาทำความเข้าใจโปรแกรมข้างต้นกัน
ตัวแปรโกลบอล a มีค่า 5 และตัวแปรสแตติก b มีค่า 10 ดังนั้น โปรแกรมนี้จะทำงานตามที่ต้องการ
ถ้าค่าคงที่ไม่ได้ใช้เพื่อเริ่มต้นตัวแปรโกลบอลและสแตติก จะทำให้เกิดข้อผิดพลาด โปรแกรมที่สาธิตมีดังนี้
#include <stdio.h>
int func() {
return 25;
}
int main() {
static int a = func();
printf("%d ", a);
} โปรแกรมข้างต้นทำให้เกิดข้อผิดพลาด "องค์ประกอบเริ่มต้นไม่คงที่" ดังนั้น ตัวแปรโกลบอลและสแตติกควรเริ่มต้นด้วยค่าคงที่เท่านั้น