Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

กฎขอบเขตท้องถิ่นและระดับโลกในภาษา C คืออะไร


ขอบเขตทั่วโลก

Global scope ระบุว่าตัวแปรที่กำหนดนอกบล็อกสามารถมองเห็นได้จนถึงจุดสิ้นสุดของโปรแกรม

ตัวอย่าง

#include<stdio.h>
int c= 30; /* global area */
main (){
   int a = 10;
   printf (“a=%d, c=%d” a,c);
   fun ();
}
fun (){
   printf (“c=%d”,c);
}

ผลลัพธ์

a =10, c = 30
c = 30

ขอบเขตท้องถิ่น

ขอบเขตภายในระบุว่าตัวแปรที่กำหนดภายในบล็อกจะมองเห็นได้เฉพาะในบล็อกนั้นและมองไม่เห็นภายนอกบล็อก

ตัวแปรที่ประกาศในบล็อกหรือฟังก์ชัน (ในเครื่อง) สามารถเข้าถึงได้ภายในบล็อกนั้นและไม่มีอยู่ภายนอกนั้น

ตัวอย่าง

#include<stdio.h>
main (){
   int i = 1;// local scope
   printf ("%d",i);
   }
   {
      int j=2; //local scope
      printf("%d",j);
   }
}

ผลลัพธ์

1 2

แม้ว่าตัวแปรจะถูกประกาศซ้ำในบล็อกที่เกี่ยวข้องกันและมีชื่อเดียวกัน แต่ก็ถือว่าแตกต่างกัน

ตัวอย่าง

#include<stdio.h>
main (){
   {
      int i = 1; //variable with same name
      printf ("%d",i);
   }
   {
      int i =2; // variable with same name
      printf ("%d",i);
   }
}

ผลลัพธ์

1 2

การประกาศตัวแปรภายในบล็อกที่มีชื่อเดียวกับตัวแปรในบล็อกภายนอกจะปิดบังตัวแปรบล็อกภายนอกขณะดำเนินการบล็อกภายใน

ตัวอย่าง

#include<stdio.h>
main (){
   int i = 1;{
      int i = 2;
      printf (“%d”,i);
   }
}

ผลลัพธ์

2

ตัวแปรที่ประกาศภายนอกบล็อกภายในสามารถเข้าถึงได้จากบล็อกที่ซ้อนกัน โดยที่ตัวแปรเหล่านี้จะไม่ประกาศภายในบล็อกภายใน

ตัวอย่าง

#include<stdio.h>
main (){
   int i = 1;{
      int j = 2;
      printf ("%d",j);
      printf ("%d",i);
   }
}

ผลลัพธ์

2 1