คลาสการจัดเก็บระบุขอบเขต อายุการใช้งาน และการเชื่อมโยงของตัวแปร
ในการกำหนดตัวแปรอย่างสมบูรณ์ เราต้องไม่เพียงแค่พูดถึง "ประเภท" เท่านั้น แต่ยังรวมถึงคลาสพื้นที่เก็บข้อมูลด้วย
ชื่อตัวแปรระบุตำแหน่งทางกายภาพบางส่วนภายในหน่วยความจำคอมพิวเตอร์ โดยที่ชุดของบิตจะถูกจัดสรรเพื่อจัดเก็บค่าของตัวแปร
คลาสพื้นที่เก็บข้อมูลบอกเราถึงปัจจัยต่อไปนี้ −
- เก็บตัวแปรไว้ที่ใด (ในหน่วยความจำหรือ 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