บทที่ 13 Pre-processor directive & macro Kairoek choeychuen

Slides:



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

ชนิดของข้อมูลในโปรแกรม Interactive C
Computer Language.
บทที่ 2 รหัสควบคุมและการคำนวณ
INTRODUCTION TO C LANGUAGE
Introduction to C Introduction to C.
โครงสร้างโปรแกรมภาษา C
โครงสร้างภาษาซี เบื้องต้น
สรุปคำสั่ง if(เงื่อนไข)
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
BC322 ครั้งที่ 6 Text file BC322 : computer Programming (Week6)
แนะนำการเขียนโปรแกรมภาษา C Introduction to C Programming Language
สถาปัตยกรรมแบบ stack และ การผลิตโค๊ด
รหัสระหว่างกลาง (Intermediate code)
Functional programming part II
Data Type part.III.
Functional programming part II
Structure Programming
Structure Programming
JavaScript.
ฟังก์ชันตรวจสอบเงื่อนไข
องค์ประกอบของโปรแกรม
Introduction to C Programming.
รับและแสดงผลข้อมูล.
รูปแบบโครงสร้างภาษาซี
PHP LANGUAGE.
โครงสร้างภาษาซี.
โดย อาจารย์ณัฐพงศ์ พยัฆคิน
ฟังก์ชั่น function.
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
คลาสและวัตถุ (4) (Class & Object)
แนะนำการเขียนโปรแกรมภาษา C Introduction to C Programming Language
หน่วยที่ 8 อาร์กิวเมนต์ของ main
คำสั่งควบคุมการทำงาน
Lecture 7 ฟังก์ชัน To do: Hand back assignments
ตัวแปร (Variable) คือ ชื่อที่ตั้งขึ้นเพื่อเก็บข้อมูลในหน่วยความจำ สามารถเก็บข้อมูลชนิดใดก็ ได้ ลักษณะที่สำคัญ ค่าที่จัดเก็บ เมื่อปิดโปรแกรมข้อมูลจะหายไป.
การเขียนโปรแกรมภาษาซี
Introduction to C Language
ตัวแปรกับชนิดของข้อมูล
ครูรัตติยา บุญเกิด.
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
ง30212 พื้นฐานการเขียนโปรแกรม ศูนย์คอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
คำสั่ง for ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
ความรู้เบื้องต้น เกี่ยวกับภาษา PHP ศูนย์คอมพิวเตอร์ โรงเรียนปลวกแดง พิทยาคม.
ใบงานที่ 3 โครงสร้างของโปรแกรมภาษาซี
การเขียนผังงาน จุดประสงค์ 1.อธิบายความของผังงานได้
ตัวแปรกับชนิดของข้อมูล
ทบทวน กันก่อน .....กระบวนการแปลโปรแกรม
Week 2 Variables.
Week 12 Engineering Problem 2
เสรี ชิโนดม ฟังก์ชัน เสรี ชิโนดม
Computer Programming for Engineers
2 /* ข้อความนี้เป็นเพียงคำอธิบาย ไม่มีผลต่อขั้นตอนการ ทำงานของโปรแกรม */ /* A simple program to display a line of text */ #include void main ( ) { printf.
วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
หลักการเขียนโปรแกรม ( )
หลักการเขียนโปรแกรม ( )
การใช้คำสั่งเงื่อนไข
หลักการเขียนโปรแกรม ( )
Overview of C Programming
PHP: [8] การสร้างฟังก์ชั่นขึ้นใช้เอง (User-defined functions)
PHP การตรวจสอบเงื่อนไข.
การเขียนโปรแกรมคอมพิวเตอร์ 1
โครงสร้าง ภาษาซี.
CONDITION Computer Programming Asst. Prof. Dr. Choopan Rattanapoka.
แนะนำการเขียนโปรแกรมภาษา C Introduction to C Programming Language
คอนสตรัคเตอร์ (Constructor)
ตัวแปร และชนิดข้อมูล.
บทที่ 5 โปรแกรมย่อย.
ใบสำเนางานนำเสนอ:

บทที่ 13 Pre-processor directive & macro Kairoek choeychuen

Pre-processor directive & Macro คืออะไร คำสั่งที่ประกาศไว้ด้านบนสุด คอมไพเลอร์จะกระทำ Pre-processor & Macro ก่อนจะประมวลผลโปรแกรม - สามารถเป็น ค่าคงที่, ฟังก์ชันหรือการตรวจสอบเงื่อนไข (คล้าย คำสั่ง if)

ตารางสรุปPre-processor directive คำอธิบาย #include แทรกไฟล์ที่ต้องการประมวลผลร่วมกับโปรแกรม #if ใช้ตรวจสอบเงื่อนไขก่อนการประมวลผลโปรแกรม #ifdef ใช้ตรวจสอบ Macro ที่ถูกสร้างโดย #define #ifndef ใช้ตรวจสอบว่า Macro ไม่ถูกประกาศใช่ไหม #elif หากตรวจสอบเงื่อนไข #if, #ifdef และ #ifndef แล้วเป็นเท็จ ก็จะมาตรวจสอบ เงื่อนไขที่ #elif #else หากตรวจสอบเงื่อนไข #if, #ifdef , #ifndef และ #elif แล้วเป็นเท็จ ก็จะมาตรวจสอบ เงื่อนไขที่ #else #endif ใช้ระบุจุดสิ้นสุดของเงื่อนไข #define ใช้สร้าง Macro #undef ใช้ยกเลิก Macro

Macro อาจเป็น ค่าคงที่, ฟังก์ชัน มาโครมาตรฐาน (Standard predefined macro) มาโครที่ผู้ใช้กำหนดเอง (User predefined macro)

มาโครมาตรฐาน - มาโครที่ภาษาซี จัดไว้ให้ผู้ใช้เรียกใช้งานได้ทันที - ชื่อมาโครมาตรฐาน จะขึ้นต้นและปิดท้ายด้วย __ (underscore 2 ตัวติดกัน) มาโครมาตรฐาน คำอธิบาย __FILE__ ดึงชื่อไฟล์ที่เรากำลังเขียนโปรแกรม __LINE__ ดึงหมายเลขบรรทัดที่เรากำลังทำงานอยู่ __DATE__ ดึงวันที่เราเริ่มรัน Pre-processor ในรูปแบบสตริง 11 ตัวอักษร __TIME__ ดึงเวลาที่เราเริ่มรัน Pre-processor ในรูปแบบสตริง 8 ตัวอักษร __STDC__ ใช้ตรวจสอบว่า c compiler ที่ใช้เป็นไปตามมาตรฐาน ISO/ANSI C หรือไม่ ถ้าเป็นจะส่งค่า 1 ถ้าไม่เป็นจะส่งค่า 0 ออกมา

เรียกใช้ Macro เป็นการแทรกคำสั่งที่สร้างไว้ ที่ตำแหน่งนี้ ตัวอย่างการใช้งาน Standard Predefined Macros สร้าง Macro เรียกใช้ Macro เป็นการแทรกคำสั่งที่สร้างไว้ ที่ตำแหน่งนี้

ก่อนรันคำสั่งใน main คำสั่งในส่วน Pre-processor directive จะไปแทนที่ ในตำแหน่งที่เรียนใช้ Pre-processor

#define ชื่อMacro ค่าที่ต้องการกำหนดให้Macro Macro ที่ผู้ใช้กำหนดเอง ด้วยคำสั่ง #define รูปแบบ #define ชื่อMacro ค่าที่ต้องการกำหนดให้Macro ตัวอย่าง Macro อย่างง่าย #define PI 3.14 //สร้างค่าคงที่ PI = 3.14 #define TIMES 2 //สร้างค่าคงที่ TIMES = 2 #define ROUND 3*TIMES //สร้างค่าคงที่การคำนวณ //ROUND = 3* TIMES = 3*2=6 #define ADD 2+1+a //สร้างค่าคงที่การคำนวณ //ADD = 2+1+ตัวแปร a

Macro ที่สามารถรับพารามิเตอร์ได้ รูปแบบ #define ชื่อMacro(อาร์กิวเมนต์) ฟังก์ชันของอาร์กิวเมนต์ ตัวอย่าง Macro ที่สามารถรับค่าพารามิเตอร์ได้ #define SQUARE(A) (A*A) //สร้างฟังก์ชัน A ยกกำลังสอง #define ADD(B) (B+B) //สร้างฟังก์ชัน B+B

#define ชื่อMacro(arg1,arg2,…,arg n) เงื่อนไข รูปแบบ #define ชื่อMacro(arg1,arg2,…,arg n) เงื่อนไข ตัวอย่าง Macro แบบมีเงื่อนไข #define MAX(x,y) x>y ? x : y //สร้างฟังก์ชันหาค่าสูงสุด //ระหว่าง x, y การใช้ If อย่างย่อ แบบเต็มแสดงได้ดังนี้ If (x>y) MAX = x Else MAX = y

Macro แบบมีเงื่อนไข (หลายบรรทัด) รูปแบบ #define ชื่อMacro(arg1,arg2,…,arg n) { \ คำสั่ง 1; \ คำสั่ง 2; \ …. \ คำสั่ง n;}

ตัวอย่าง Macro แบบมีเงื่อนไข (หลายบรรทัด)

ตัวอย่างการใช้ #ifdef, #ifndef, #else, #endif, #undef ตรวจสอบ A ถูก define ? เปลี่ยนค่า A ต้องทำการ #undef A ก่อนเสมอ ทางเลือกสุดท้ายเมื่อเงื่อนไขก่อนหน้าเป็นเท็จ สิ้นสุดการตรวจสอบเงื่อนไข หลังจากรัน Pre-processor directive

ตัวอย่างการใช้ #ifdef, #ifndef, #else, #endif, #undef แทรกไฟล์ font1.inc ไว้ในส่วน Pre-processor directive แทรกไฟล์ font2.inc ไว้ในส่วน Pre-processor directive

เรียกใช้ฟังก์ชันที่อยู่ในไฟล์ font2.inc ตัวอย่างการใช้ #ifdef, #ifndef, #else, #endif, #undef เรียกใช้ฟังก์ชันที่อยู่ในไฟล์ font1.inc (ไฟล์ที่จะแทรกอาจมีนามสกุลอื่นๆ เราสามารถตั้งนามสกุลเองได้ตามใจ) เรียกใช้ฟังก์ชันที่อยู่ในไฟล์ font2.inc