งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Chapter 7. ตัวแปร (variable) จำแนกได้ 2 แบบ Data type –integer –floating-point number –character Storage class –automatic –external –static –register.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Chapter 7. ตัวแปร (variable) จำแนกได้ 2 แบบ Data type –integer –floating-point number –character Storage class –automatic –external –static –register."— ใบสำเนางานนำเสนอ:

1 Chapter 7

2 ตัวแปร (variable) จำแนกได้ 2 แบบ Data type –integer –floating-point number –character Storage class –automatic –external –static –register

3 Storage class ตัวอย่างการประกาศตัวแปร storage class auto int a, b, c; extern float, point1, point2; static int count = 0; extern char star;

4 ตัวแปรอัตโนมัติ Automatic variables ประกาศในฟังก์ชันเสมอ เป็นตัวแปรเฉพาะที่ในฟังก์ชันที่ประกาศ ใช้งาน ได้ภายในฟังก์ชัน ถ้าถูกประกาศในฟังก์ชันหนึ่ง ก็จะไม่เกี่ยวข้อง กับตัวแปรในอีกฟังก์ชันหนึ่งที่มีชื่อเดียวกัน ตัวแปรใดๆที่ประกาศในฟังก์ชัน โดยไม่ประกาศ ว่าเป็นตัวแปรแบบใด จะถือเป็นตัวแปรอัตโนมัติ ดังนั้นในการประกาศอาจจะมี auto หรือไม่ก็ได้

5 ตัวแปรภายนอก external (global) variables กำหนดไว้นอกฟังก์ชัน ( รวมทั้ง main()) ใช้งานได้ตั้งแต่ตำแหน่งที่ประกาศ ไปจนถึง บรรทัดสุดท้าย ซึ่งอาจครอบคลุมหลายฟังก์ชัน ช่วยในการส่งข้อมูลระหว่างฟังก์ชัน แบ่งเป็น 2 ชนิด –external variable definition –external variable declaration

6 ตัวแปรภายนอก external variable definition external variable definition คล้ายกับการ ประกาศตัวแปรทั่วไป แต่อยู่ภายนอกและก่อน ฟังก์ชันที่จะใช้ตัวแปร ซึ่งจะทำให้มีการจัดสรร พื้นที่ในความจำให้ตัวแปร อาจจะใส่ extern หรือไม่ก็ได้ ( บางคอมไพเลอร์ ไม่อนุญาตให้ใส่ extern) เนื่องจากจะถูกกำหนด ตามตำแหน่งของตัวแปร สามารถกำหนดค่าเริ่มต้น ( เป็นค่าคงที่ ไม่ใช่ นิพจน์ ) ได้ ถ้าฟังก์ชันสามารถใช้ตัวแปรภายนอกที่ได้ถูก กำหนดไว้ก่อนแล้วในโปรแกรม

7 ตัวแปรภายนอก external variable declaration ในการประกาศต้องขึ้นต้นด้วย extern เสมอ ชื่อของตัวแปรภายนอกต้องตรงกับ external variable definition ที่อยู่นอกฟังก์ชัน ไม่สามารถกำหนดค่าเริ่มต้นได้

8 external variable definition external variable declaration

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

10 float a, b, c; void dummy (void); main () {static float a; … } void dummy (void) {static int a; int b; … } a, b, c เป็น external floating point a ถูกกำหนดซ้ำเป็น static ใน main ดังนั้น b และ c จึงเป็นตัวแปร ภายนอกเพียง 2 ตัวเท่านั้นที่ ใช้ได้ใน main และ c ก็เป็นตัวแปรภายนอก เพียงตัวเดียวที่ใช้ได้ใน dummy

11

12

13 External static variables

14 Register variables ใช้เพื่อให้ คอมไพเลอร์นำ ตัวแปรเฉพาะที่ ไปเก็บไว้ใน รีจิสเตอร์ แทน การนำไปเก็บไว้ ใน ความจำปกติ จะช่วยให้การ ประมวลผลเร็วขึ้น

15 Local Variable & Main() ระบบปฏิบัติการ เรียก main() ให้ทำงาน เมื่อ main() ทำงานเสร็จ ส่งการควบคุมกลับไป ยัง ระบบปฏบัติการ ตัวแปรเฉพาะที่ (local variable) ของ main() จะถูกสร้างเมื่อโปรแกรมเริ่มทำงาน จะถูก ทำลายไปเมื่อโปรแกรมจบการทำงาน ดังนั้น automatic local และ static local variable จึง ไม่มีความแตกต่างกัน

16 Storage class keywordLife timewherescope automatictemporaryin a function local static temporaryin a function local Register temporaryin a function local externalpermanentoutside a function global external static staticpermanentoutside a function global

17 Local variables and blocks

18 Multifile Programs ในโปรแกรมหลายแฟ้ม ฟังก์ชันอาจเป็นชนิด external หรือ static external function ( มี extern ที่หน้าฟังก์ชัน ) จะ เป็นที่รู้จักตลอดทั้งโปรแกรม static function ( มี static ที่หน้าฟังก์ชัน ) จะเป็นที่ รู้จักเฉพาะภายในแฟ้มที่กำหนดฟังก์ชันนั้น ถ้าไม่มี extern หรือ static ที่หน้าฟังก์ชัน ถือว่า เป็น external function

19 Function declaration Storage-class data-type name (type1 para1, type2 para2, …) extern int datacheck (int p, float q)

20 Project building เพื่อกระทำการโปรแกรมหลายแฟ้ม ต้องสร้าง project

21 output เป็น extern storage-class จึงต้องถูกเรียกจากภายนอก ดังนั้นจึงต้องใช้ extern ทั้งใน function declaration(file1.cpp) และ function definition(file2.cpp) แต่เนื่องจาก extern เป็น default storage class จึง สามารถละได้

22

23

24 Variable definition in a multifile program ภายในโปรแกรมหลายแฟ้ม external variable ที่ กำหนดไว้ในแฟ้มหนึ่ง สามารถถูกเข้าถึงจากแฟ้ม อื่น external variable definition ปรากฎได้เพียงแฟ้ม เดียว คือ ภายนอกของ function definition ปกติมักอยู่ที่จุดเริ่มต้นของแฟ้ม ก่อน function definition แรก external variable definition สามารถกำหนดค่า เริ่มต้นได้ แต่ถ้าไม่กำหนดจะมีค่าเริ่มต้นเป็น ศูนย์ ไม่ต้องใส่ extern ใน definition เพราะตัวแปรจะถูก รู้จักด้วยตำแหน่งของตัวแปรภายในแฟ้มที่กำหนด

25 Variable declaration in a multifile program ตัวแปรต้องถูกประกาศภายในแฟ้ม เพื่อให้ สามารถเข้าถึง external variable ในอีกแฟ้ม หนึ่ง โดยประกาศไว้ที่ใดก็ได้ภายในแฟ้ม แต่ปกติมัก ประกาศไว้ที่ต้นแฟ้ม ก่อน function definition แรก ต้องขึ้นต้นด้วย extern ไม่สามารถกำหนดค่าเริ่มต้น ค่าที่กำหนดสามารถเปลี่ยนแปลงได้ภายในแฟ้ม ที่รู้จักตัวแปร แฟ้มอื่นสามารถรับรู้การ เปลี่ยนแปลงได้

26 FILEA กำหนดให้ a, b, c เป็น external variable มีค่าเริ่มต้น 1,2,3 ขอบเขตของ a, b, c ครอบคลุมทั้งโปรแกรม จึงถูกเข้าถึงและเปลี่ยนแปลงได้จากทุกที่

27 กรณีที่ไม่เปิด project ไม่สามารถคอมไพล์ได้


ดาวน์โหลด ppt Chapter 7. ตัวแปร (variable) จำแนกได้ 2 แบบ Data type –integer –floating-point number –character Storage class –automatic –external –static –register.

งานนำเสนอที่คล้ายกัน


Ads by Google