ในภาษา 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); }
โปรแกรมข้างต้นทำให้เกิดข้อผิดพลาด "องค์ประกอบเริ่มต้นไม่คงที่" ดังนั้น ตัวแปรโกลบอลและสแตติกควรเริ่มต้นด้วยค่าคงที่เท่านั้น