Chapter 7 ขอบเขตของตัวแปร Variable Scope.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างของภาษา C ในโปรแกรมที่พัฒนาด้วยภาษา C ทุกโปรแกรมจะมีโครงสร้างการพัฒนาไม่แตกต่างกัน ซึ่งประกอบด้วย 6 ส่วนหลัก ๆ โดยที่แต่ละส่วนจะมีหน้าที่แตกต่างกัน.
Advertisements

Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
ชนิดของข้อมูลในโปรแกรม Interactive C
Pointers. Why have pointers? / pointers ทำให้ฟังก์ชันหรือส่วนของ โปรแกรมสามารถใช้งานข้อมูลร่วมกันได้ / ใช้ pointers ในการสร้างโครงสร้างข้อมูลที่ ซับซ้อนได้
บทที่ 2 รหัสควบคุมและการคำนวณ
Introduction to C Introduction to C.
รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
โครงสร้างโปรแกรมภาษา C
โครงสร้างภาษาซี เบื้องต้น
ตัวแปรชุด การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1
Introduction to C Programming
Department of Computer Business
บทที่ 11 การเขียนโปรแกรมโดยใช้ข้อมูลชนิดพอยท์เตอร์
บทที่ 3 ตอนที่ 1 คำสั่งเงื่อนไขและการตัดสินใจ(p
สภาวะแวดล้อมในขณะโปรแกรมทำงาน
Functional programming part II
Data Type part.III.
Lecture No. 3 ทบทวนทฤษฎีและแบบฝึกหัด
ฟังก์ชัน (Function).
Structure Programming
Structure.
องค์ประกอบของโปรแกรม
Week 6 ประกาศค่าตัวแปร.
บทที่ 3 พื้นฐานการเขียนโปรแกรม Visual Basic
Visual Basic 6 By Samaporn Yendee VB6.
รับและแสดงผลข้อมูล.
PHP LANGUAGE.
อาเรย์ (Array).
ฟังก์ชั่น function.
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
โปรแกรมย่อย : Pascal Procedure
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
Arrays.
C Programming Lecture no. 9 Structure.
C Programming Lecture no. 6: Function.
คลาสและวัตถุ (4) (Class & Object)
ข้อมูลพื้นฐานและตัวดำเนินการ
บทที่ 5 ฟังก์ชันของ PHP การประกาศฟังก์ชัน { Statement; }
Lecture 4 องค์ประกอบภาษา C To do: Hand back assignments
ตัวแปร (Variable) คือ ชื่อที่ตั้งขึ้นเพื่อเก็บข้อมูลในหน่วยความจำ สามารถเก็บข้อมูลชนิดใดก็ ได้ ลักษณะที่สำคัญ ค่าที่จัดเก็บ เมื่อปิดโปรแกรมข้อมูลจะหายไป.
Introduction to C Language
ตัวแปรกับชนิดของข้อมูล
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
ง30212 พื้นฐานการเขียนโปรแกรม ศูนย์คอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ประวัติความเป็นมาภาษาซี
ตัวแปรกับชนิดของข้อมูล
Week 2 Variables.
เสรี ชิโนดม ฟังก์ชัน เสรี ชิโนดม
Computer Programming for Engineers
วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์)
ฟังก์ชัน.
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
หลักการเขียนโปรแกรม ( )
PHP: [8] การสร้างฟังก์ชั่นขึ้นใช้เอง (User-defined functions)
Java Programming Java Structure and Datatype,Variable
อาจารย์ปิยศักดิ์ ถีอาสนา
บทที่ 2 ฟังก์ชันใน Visual Basic 6.0
โครงสร้าง ภาษาซี.
1. Global variable คือ ตัวแปรที่กำหนดหรือประกาศไว้นอกฟังก์ชันใด ๆ ทุกฟังก์ชัน สามารถนำตัวแปรประเภท Global ไปใช้ได้ทุกฟังก์ชัน.
หน่วยที่ 4 โครงสร้างโปรแกรมภาษาซี
บทที่ 2 โครงสร้างของภาษา C.
ตัวแปร และชนิดข้อมูล.
1 Functions กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา.
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
บทที่ 6 ตัวแปรชุดและ สตริง รายวิชา ง การเขียนโปรแกรมเชิง วัตถุ Reading: ใบความรู้ บทที่ 6.
Function. วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน.
บทที่ 7 การสร้างและการใช้งาน ฟังก์ชัน อาจารย์ชนิดา คำเพ็ง สาขาวิชาเทคโนโลยีสารสนเทศ คณะวิทยาศาสตร์ และเทคโนโลยี
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
Chapter 7 ฟังก์ชัน Function.
ใบสำเนางานนำเสนอ:

Chapter 7 ขอบเขตของตัวแปร Variable Scope

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

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

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

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

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

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

external variable definition external variable declaration

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

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

External static variables

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

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

Storage class keyword Life time where scope automatic temporary in a function local static Register external permanent outside a function global external static

Local variables and blocks

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

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

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

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

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

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

FILEA กำหนดให้ a, b, c เป็น external variable มีค่าเริ่มต้น 1,2,3

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