กลับไปหน้าบทความ

อ่าน 2 นาที

ต้นแบบฟังก์ชัน

ใน การเขียนโปรแกรมคอมพิวเตอร์ ต้นแบบ ฟังก์ชัน คือการ ประกาศ ฟังก์ชันที่ระบุชื่อฟังก์ชันและ ลาย เซ็นประเภท ( arity , ประเภทข้อมูล ของ พารามิเตอร์ และ ประเภทการส่งคืน )...

ต้นแบบฟังก์ชัน

ในการเขียนโปรแกรมคอมพิวเตอร์ต้นแบบฟังก์ชัน คือการประกาศฟังก์ชันที่ระบุชื่อฟังก์ชันและลายเซ็นประเภท ( arity , ประเภทข้อมูลของพารามิเตอร์และประเภทการส่งคืน ) แต่ละเว้นส่วนเนื้อหาของฟังก์ชัน ในขณะที่คำจำกัดความของฟังก์ชันระบุว่าฟังก์ชันทำงานอย่างไร ("การใช้งาน") ต้นแบบฟังก์ชันระบุเพียงอินเทอร์เฟซ กล่าวคือ ประเภทข้อมูลที่เข้าและ ออกจากฟังก์ชัน คำว่า "ต้นแบบฟังก์ชัน" ถูกใช้โดยเฉพาะในบริบทของภาษาการเขียนโปรแกรมCและC++ซึ่งการวางการประกาศล่วงหน้าของฟังก์ชันในไฟล์ส่วนหัวช่วยให้สามารถแบ่งโปรแกรมออกเป็นหน่วยการแปล กล่าวคือ เป็นส่วนๆ ที่คอมไพเลอร์สามารถแปลแยกกันเป็นไฟล์ออบเจ็กต์เพื่อรวมเข้าด้วยกันโดยลิงเกอร์เป็นไฟล์ปฏิบัติการหรือไลบรารีการประกาศฟังก์ชันอยู่ก่อนคำจำกัดความของฟังก์ชัน โดยให้รายละเอียดของชื่อ ประเภทการส่งคืน และคลาสการจัดเก็บพร้อมกับคุณลักษณะอื่นๆ ที่เกี่ยวข้อง[ 1 ]

ต้นแบบฟังก์ชันสามารถใช้ได้เมื่อ: [ 2 ]

  • การกำหนด ExternalType
  • การสร้างส่วนอินเทอร์เฟซ

ในต้นแบบฟังก์ชัน ชื่อพารามิเตอร์นั้นเป็นตัวเลือก (และในภาษา C/C++ จะมีขอบเขตตามต้นแบบ ฟังก์ชัน ซึ่งหมายความว่าขอบเขตของพารามิเตอร์จะสิ้นสุดเมื่อสิ้นสุดต้นแบบ) อย่างไรก็ตาม ประเภทของพารามิเตอร์นั้นจำเป็นต้องมี พร้อมกับตัวดัดแปลงทั้งหมด (เช่น ถ้าเป็นตัวชี้หรือการอ้างอิงถึง พารามิเตอร์ คงที่ ) ยกเว้นคำว่าconstเพียงอย่างเดียว

ในการเขียนโปรแกรมเชิงวัตถุ อินเทอร์เฟซและเมธอดนามธรรมทำหน้าที่คล้ายคลึงกัน มาก

ตัวอย่าง

พิจารณาต้นแบบฟังก์ชันต่อไปนี้:

void sum ( int a , int b );

หรือในกรณีที่ไม่ได้ระบุพารามิเตอร์:

void sum ( int , int );

หรือใช้กับประเภทการส่งคืนค่าแบบต่อท้าย ( เฉพาะ C++ ):

auto sum ( int , int ) -> void ;

ต้นแบบฟังก์ชันประกอบด้วยลายเซ็นฟังก์ชัน ชื่อของฟังก์ชัน ประเภทของค่าที่ส่งคืน และตัวระบุการเข้าถึง ในกรณีนี้ ชื่อของฟังก์ชันคือ "sum" ลายเซ็นฟังก์ชันกำหนดจำนวนพารามิเตอร์และประเภทของพารามิเตอร์ ประเภทของค่าที่ส่งคืนคือ "void" ซึ่งหมายความว่าฟังก์ชันจะไม่ส่งคืนค่าใดๆ โปรดทราบว่าชื่อพารามิเตอร์ในตัวอย่างแรกนั้นเป็นตัวเลือก

การใช้งาน

ในภาษาซีเวอร์ชันแรกๆ หากฟังก์ชันไม่ได้ถูกประกาศไว้ก่อนหน้านี้ และชื่อของฟังก์ชันนั้นปรากฏอยู่ในนิพจน์ตามด้วยวงเล็บเปิด ฟังก์ชันนั้นจะถูกประกาศโดยปริยายว่าเป็นฟังก์ชันที่ส่งคืนค่าintและจะไม่มีการสันนิษฐานใดๆ เกี่ยวกับอาร์กิวเมนต์ ในกรณีนี้ คอมไพเลอร์จะไม่สามารถตรวจสอบความถูกต้องของจำนวนและชนิดของอาร์กิวเมนต์ในระหว่างการคอมไพล์ได้ มาตรฐาน C99กำหนดให้ใช้ต้นแบบฟังก์ชัน (prototypes)

#include <limits.h> #include <stdio.h>// ต้นแบบฟังก์ชันchar myFunction ( int a );int main ( void ) { putchar ( myFunction ( -1 )); // การเรียกที่จัดรูปแบบถูกต้องputchar ( myFunction ( 1.5 )); // คำเตือนของคอมไพเลอร์: ประเภทไม่ตรงกันputchar ( myFunction ( "IncorrectArgType" )); // คำเตือนของคอมไพเลอร์: ประเภทไม่ตรงกันputchar ( myFunction ()); // ข้อผิดพลาดของคอมไพเลอร์: อาร์กิวเมนต์น้อยเกินไป// แม้ว่าการเพิ่ม 1 ให้กับ INT_MAX จะทำให้เกิดข้อผิดพลาดการล้นของจำนวนเต็ม// แต่ไม่สามารถตรวจพบได้ในระหว่างการคอมไพล์putchar ( myFunction ( INT_MAX + 1 ));ส่งคืนค่า0 ; }// นิยามฟังก์ชันchar myFunction ( int n ) { if ( n > 0 ) { return '>' ; } else if ( n < 0 ) { return '<' ; } else { return '=' ; } }

ฟังก์ชันMyFunctionคาดหวังว่าจะถูกเรียกใช้ด้วยอาร์กิวเมนต์ที่เป็นจำนวนเต็ม การใส่ต้นแบบฟังก์ชันจะแจ้งให้คอมไพเลอร์ทราบว่าฟังก์ชันรับอาร์กิวเมนต์ที่เป็นจำนวนเต็มหนึ่งตัว และช่วยให้คอมไพเลอร์ตรวจจับการเรียกใช้ที่ระบุไม่ถูกต้องได้

การสร้างอินเทอร์เฟซไลบรารี

การระบุ อินเทอร์เฟซสำหรับไลบรารีสามารถทำได้โดย การวางต้นแบบฟังก์ชันไว้ในไฟล์ส่วนหัว

การประกาศคลาส

ในภาษา C++ ต้นแบบฟังก์ชันยังถูกใช้ในการนิยาม คลาส ด้วย

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Function_prototype&oldid=1337528919 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ต้นแบบฟังก์ชัน

ใน การเขียนโปรแกรมคอมพิวเตอร์ ต้นแบบ ฟังก์ชัน คือการ ประกาศ ฟังก์ชันที่ระบุชื่อฟังก์ชันและ ลาย เซ็นประเภท ( arity , ประเภทข้อมูล ของ พารามิเตอร์ และ ประเภทการส่งคืน )...

การใช้งาน

ในภาษาซีเวอร์ชันแรกๆ หากฟังก์ชันไม่ได้ถูกประกาศไว้ก่อนหน้านี้ และชื่อของฟังก์ชันนั้นปรากฏอยู่ในนิพจน์ตามด้วยวงเล็บเปิด ฟังก์ชันนั้นจะถูกประกาศโดยปริยายว่าเป็นฟังก์ชันที่ส่งคืนค่า int และจะไม่มีการสันนิษฐานใดๆ เกี่ยวกับอาร์กิวเมนต์ ในกรณีนี้...

การสร้างอินเทอร์เฟซไลบรารี

การระบุ อินเทอร์เฟซ สำหรับ ไลบรารี สามารถทำได้โดย การวางต้นแบบฟังก์ชันไว้ใน ไฟล์ส่วนหัว

การประกาศคลาส

ในภาษา C++ ต้นแบบฟังก์ชันยังถูกใช้ในการนิยาม คลาส ด้วย