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

คลาสการจัดเก็บในC


ในภาษา C คุณสมบัติของตัวแปรและฟังก์ชันจะอธิบายโดยคลาสการจัดเก็บข้อมูล เช่น การมองเห็นและขอบเขตของตัวแปรหรือฟังก์ชัน q

คลาสการจัดเก็บข้อมูลในภาษา C มีสี่ประเภท ได้แก่ ตัวแปรอัตโนมัติ ตัวแปรภายนอก ตัวแปรคงที่ และตัวแปร Register

อัตโนมัติ

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

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

ขอบเขต − ตัวแปรอัตโนมัติคือตัวแปรท้องถิ่นของบล็อกฟังก์ชัน

ค่าเริ่มต้น − ค่าขยะเป็นค่าเริ่มต้นเริ่มต้น

อายุการใช้งาน − อายุการใช้งานของตัวแปรอัตโนมัติถูกผูกไว้โดยบล็อกที่กำหนดไว้

นี่คือตัวอย่างตัวแปรอัตโนมัติในภาษา C

ตัวอย่าง

#include <stdio.h>
int main() {
   auto int a = 28;
   int b = 8;
   printf("The value of auto variable : %d\n", a);
   printf("The sun of auto variable & integer variable : %d", (a+b));
   return 0;
}

ผลลัพธ์

The value of auto variable : 28
The sun of auto variable & integer variable : 36

ภายนอก

ตัวแปรภายนอกเรียกอีกอย่างว่าตัวแปรส่วนกลาง ตัวแปรเหล่านี้ถูกกำหนดไว้นอกฟังก์ชัน ตัวแปรเหล่านี้มีอยู่ทั่วโลกตลอดการทำงานของฟังก์ชัน ค่าของตัวแปรส่วนกลางสามารถแก้ไขได้โดยฟังก์ชัน

ขอบเขต − ไม่ผูกมัดด้วยฟังก์ชันใดๆ มีทุกที่ในโปรแกรม เช่น ทั่วโลก

ค่าเริ่มต้น − ค่าเริ่มต้นเริ่มต้นของตัวแปรส่วนกลางคือศูนย์

อายุการใช้งาน − จนจบการทำงานของโปรแกรม

นี่คือตัวอย่างตัวแปรภายนอกในภาษา C

ตัวอย่าง

#include <stdio.h>
extern int x = 32;
int b = 8;
int main() {
   auto int a = 28;
   extern int b;
   printf("The value of auto variable : %d\n", a);
   printf("The value of extern variables x and b : %d,%d\n",x,b);
   x = 15;
   printf("The value of modified extern variable x : %d\n",x);
   return 0;
}

ผลลัพธ์

The value of auto variable : 28
The value of extern variables x and b : 32,8
The value of modified extern variable x : 15

คงที่

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

ขอบเขต − พวกมันอยู่ในพื้นที่ของบล็อก

ค่าเริ่มต้น − ค่าเริ่มต้นเริ่มต้นคือศูนย์

อายุการใช้งาน − จนจบการทำงานของโปรแกรม

นี่คือตัวอย่างตัวแปรสแตติกในภาษาซี

ตัวอย่าง

#include <stdio.h>
int main() {
   auto int a = -28;
   static int b = 8;
   printf("The value of auto variable : %d\n", a);
   printf("The value of static variable b : %d\n",b);
   if(a!=0)
   printf("The sum of static variable and auto variable : %d\n",(b+a));
   return 0;
}

ผลลัพธ์

The value of auto variable : -28
The value of static variable b : 8
The sum of static variable and auto variable : -20

ลงทะเบียน

รีจิสเตอร์ตัวแปรบอกให้คอมไพเลอร์เก็บตัวแปรในการลงทะเบียน CPU แทนหน่วยความจำ ตัวแปรที่ใช้บ่อยจะถูกเก็บไว้ในรีจิสเตอร์และสามารถเข้าถึงได้เร็วกว่า เราไม่สามารถรับที่อยู่ของตัวแปรเหล่านี้ได้

ขอบเขต − พวกมันอยู่ในฟังก์ชัน

ค่าเริ่มต้น − ค่าเริ่มต้นเริ่มต้นคือค่าขยะ..

อายุการใช้งาน − จนกว่าจะสิ้นสุดการดำเนินการของบล็อกที่กำหนดไว้

นี่คือตัวอย่างตัวแปร register ในภาษา C

ตัวอย่าง

#include <stdio.h>
int main() {
   register char x = 'S';
   register int a = 10;
   auto int b = 8;
   printf("The value of register variable b : %c\n",x);
   printf("The sum of auto and register variable : %d",(a+b));
   return 0;
}

ผลลัพธ์

The value of register variable b : S
The sum of auto and register variable : 18