คลาสการจัดเก็บระบุขอบเขต อายุการใช้งาน และการเชื่อมโยงของตัวแปร
ในการกำหนดตัวแปรอย่างสมบูรณ์ เราต้องไม่เพียงแค่พูดถึง "ประเภท" เท่านั้น แต่ยังรวมถึงคลาสพื้นที่เก็บข้อมูลด้วย
ชื่อตัวแปรระบุตำแหน่งทางกายภาพบางส่วนภายในหน่วยความจำคอมพิวเตอร์ โดยที่ชุดของบิตจะถูกจัดสรรเพื่อจัดเก็บค่าของตัวแปร
คลาสพื้นที่เก็บข้อมูลบอกเราถึงปัจจัยต่อไปนี้ −
- เก็บตัวแปรไว้ที่ใด (ในหน่วยความจำหรือ cpu register)
- ค่าเริ่มต้นของตัวแปรจะเป็นอย่างไร หากไม่มีการกำหนดค่าเริ่มต้น
- ขอบเขตของตัวแปรคืออะไร (เข้าถึงได้)
- ชีวิตของตัวแปรคืออะไร?
การผูก
การผูกจะค้นหาการเกิดขึ้นที่มีผลผูกพัน (การประกาศ/คำจำกัดความ) สำหรับการเกิดขึ้นที่นำไปใช้ (การใช้งาน) ของตัวระบุ
- ควรทราบขอบเขตของตัวแปร
โครงสร้างบล็อกคืออะไร
ตัวระบุเป็นตัวแปรในบล็อกใด
- จะเกิดอะไรขึ้นถ้าเราใช้ชื่อตัวระบุเดิมอีกครั้ง
'C' ห้ามใช้ชื่อตัวระบุเดียวกันในขอบเขตเดียวกัน
สามารถใช้ชื่อเดียวกันได้ในหลายขอบเขต
ตัวอย่าง
double f,y;
int f( ) //error {
---
----
----
}
double y; //error ตัวอย่าง
double y;
int f( ){
double f;//legal
int y; //legal
} ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C สำหรับผูกตัวแปร -
#include<stdio.h>
int i=33;
main() {
extern int i; {
int i=22; {
const volatile unsigned i=11;
printf("i=%d\n",i);
}
printf("i=%d",i);
}
} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะสร้างผลลัพธ์ต่อไปนี้ -
i=11 i=22