ที่นี่เราจะมาดูกันว่าอะไรคือการประกาศตัวแปรทั่วโลกใน C อีกครั้ง C รองรับสิ่งนี้หรือไม่ ให้เราดูโค้ดต่อไปนี้เพื่อทำความเข้าใจเรื่องนี้
ตัวอย่าง
#include <stdio.h> int main(){ int a; int a = 50; printf("a is : %d\n", a); }
ผลลัพธ์
[Error] redeclaration of 'a' with no linkage
ดังนั้นเราจะเห็นว่าเราไม่สามารถประกาศตัวแปรโลคัลซ้ำได้ ตอนนี้ให้เราดูว่าผลลัพธ์ของตัวแปรโกลบอลจะเป็นอย่างไร
ตัวอย่าง
#include <stdio.h> int a; int a = 50; int main(){ printf("a is : %d\n", a); }
ผลลัพธ์
a is : 50
ดังนั้นตัวแปรโกลบอลจึงไม่สร้างข้อผิดพลาดใดๆ ในกรณีนี้ ตอนนี้เรามาดูกันว่าการประกาศครั้งแรกถือหนึ่งค่าแล้วสามารถประกาศใหม่ได้หรือไม่?
ตัวอย่าง
#include <stdio.h> int a = 10; int a = 50; int main(){ printf("a is : %d\n", a); }
ผลลัพธ์
[Error] redefinition of 'a'
ดังนั้นเราจะเห็นได้ว่าเราสามารถประกาศตัวแปรโกลบอลได้อีกครั้งเมื่อไม่ได้กำหนดค่าเริ่มต้น