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

อะไรคือตัวแปรสแตติกในเครื่องในภาษา C?


ตัวแปรสแตติกในเครื่องเป็นตัวแปรซึ่งอายุการใช้งานไม่ได้หยุดลงด้วยการเรียกใช้ฟังก์ชันเมื่อมีการประกาศ ยืดอายุการใช้งานของโปรแกรมที่สมบูรณ์ การเรียกใช้ฟังก์ชันทั้งหมดใช้สำเนาของตัวแปรสแตติกในเครื่องเดียวกัน

ตัวแปรเหล่านี้ใช้เพื่อนับจำนวนครั้งที่เรียกใช้ฟังก์ชัน ค่าดีฟอลต์ของตัวแปรสแตติกคือ 0 ในขณะที่ขอบเขตโลคัลปกติระบุว่าตัวแปรที่กำหนดภายในบล็อกจะมองเห็นได้เฉพาะในบล็อกนั้นและมองไม่เห็นภายนอกบล็อก

ตัวแปรส่วนกลางซึ่งอยู่นอกบล็อกจะมองเห็นได้จนถึงจุดสิ้นสุดของโปรแกรม

ตัวอย่าง

ต่อไปนี้เป็นโปรแกรม C สำหรับตัวแปรท้องถิ่น -

#include<stdio.h>
main ( ){
   int a=40 ,b=30,sum; //local variables life is within the block
   printf ("sum=%d" ,a+b);
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะสร้างผลลัพธ์ต่อไปนี้ -

sum=70

ตัวอย่าง

ต่อไปนี้เป็นโปรแกรม C สำหรับตัวแปรส่วนกลาง -

int c= 30; /* global area */
main ( ){
   int a = 10; //local area
   printf ("a=%d, c=%d", a,c);
   fun ( );
}
fun ( ){
   printf ("c=%d",c);
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะสร้างผลลัพธ์ต่อไปนี้ -

a =10, c = 30

ตัวอย่าง

ต่อไปนี้เป็นโปรแกรม C สำหรับตัวแปรคงที่ในพื้นที่ -

#include <stdio.h>
void fun(){
   static int x; //default value of static variable is 0
   printf("%d ", a);
   a = a + 1;
}
int main(){
   fun(); //local static variable whose lifetime doesn’t stop with a function
   call, where it is declared.
   fun();
   return 0;
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะสร้างผลลัพธ์ต่อไปนี้ -

0 1