ความแตกต่างที่สำคัญระหว่างการประกาศและคำจำกัดความใน C คือการประกาศในภาษา C จะบอกคอมไพเลอร์เกี่ยวกับชื่อฟังก์ชัน ประเภทการส่งคืน และพารามิเตอร์ในขณะที่คำจำกัดความใน C มีการใช้งานฟังก์ชันจริง นั่นคือการประกาศให้ข้อมูลเกี่ยวกับฟังก์ชันแก่คอมไพเลอร์ในขณะที่คำจำกัดความมีคำสั่งจริงของฟังก์ชันเพื่อทำงานเฉพาะ
C เป็นภาษาการเขียนโปรแกรมที่มีโครงสร้างวัตถุประสงค์ทั่วไป ใช้โครงสร้างการควบคุม เช่น if/else การทำซ้ำ เช่น for loop, while loop และ functions ฟังก์ชันคือชุดคำสั่งที่ช่วยในการทำงานบางอย่างซ้ำแล้วซ้ำอีกนอกจากนี้ยังสามารถเรียกใช้ฟังก์ชันจากฟังก์ชันหลักได้อีกด้วย หลังจากดำเนินการคำสั่งสุดท้ายของฟังก์ชัน ตัวควบคุมจะส่งกลับไปยังฟังก์ชันหลัก บทความนี้กล่าวถึงการประกาศและคำจำกัดความของฟังก์ชันในภาษา C และเปรียบเทียบความแตกต่างระหว่างฟังก์ชันเหล่านี้ นิยามฟังก์ชันระบุว่าฟังก์ชันทำอะไร และการประกาศระบุฟังก์ชันที่จะนำไปใช้ มันเป็นต้นแบบ
การประกาศในภาษา C คืออะไร
Declaration ให้ข้อมูลเกี่ยวกับฟังก์ชันแก่คอมไพเลอร์ ไวยากรณ์สำหรับการประกาศมีดังนี้
return_ พิมพ์ function_name (รายการพารามิเตอร์);
สมมติว่าฟังก์ชันที่คำนวณผลรวมของจำนวนเต็มสองจำนวน ประกาศดังนี้
ผลรวม int (int num1, int num2);
ชื่อของฟังก์ชันคือผลรวม และพารามิเตอร์เป็นจำนวนเต็มสองตัวคือ num1 และ num2 ฟังก์ชันนี้จะคืนค่าจำนวนเต็ม คำสั่งฉบับสมบูรณ์ลงท้ายด้วยเครื่องหมายอัฒภาค
ไม่จำเป็นต้องใส่ชื่อของพารามิเตอร์ในการประกาศ ดังนั้นจึงสามารถระบุเฉพาะประเภทข้อมูลได้ดังนี้ ต่อไปนี้เป็นการประกาศที่ถูกต้อง
ผลรวม int (int, int);
คำจำกัดความในภาษา C คืออะไร
Definition มีคำสั่งจริงของฟังก์ชันเพื่อทำงานเฉพาะ ไวยากรณ์มีดังนี้
return_type function_name (รายการพารามิเตอร์){
// คำสั่งฟังก์ชัน
}
ชื่อฟังก์ชันช่วยในการระบุฟังก์ชัน เมื่อเรียกใช้ฟังก์ชัน ค่าจะส่งผ่านไปยังฟังก์ชันนั้น ค่าเหล่านี้จะคัดลอกไปยังพารามิเตอร์ รายการพารามิเตอร์สามารถมีหนึ่งพารามิเตอร์หรือจำนวนพารามิเตอร์ และพารามิเตอร์เหล่านี้มีชนิดข้อมูลและชื่อ นอกจากนี้ยังสามารถทำงานโดยไม่มีพารามิเตอร์ได้อีกด้วย
คำสั่งของฟังก์ชันอยู่ในวงเล็บปีกกา เป็นหน้าที่ของร่างกายหลังจากรันฟังก์ชันแล้วจะคืนค่ากลับมา ประเภทการส่งคืนขึ้นอยู่กับมูลค่าการส่งคืน ถ้าฟังก์ชันส่งคืนจำนวนเต็ม ชนิดส่งคืนจะเป็น int หากฟังก์ชันคืนค่าเป็นสองเท่า ประเภทการส่งคืนจะเป็นสองเท่า เป็นต้น
ดูโค้ดด้านล่างพร้อมการประกาศและคำจำกัดความของฟังก์ชัน
รูปที่ 01: โปรแกรมคำนวณผลรวมของตัวเลขสองตัว
ตามโปรแกรมด้านบน บรรทัดที่ 3 แสดงการประกาศ มันบอกคอมไพเลอร์เกี่ยวกับชื่อฟังก์ชัน พารามิเตอร์ ฯลฯ ในฟังก์ชันหลัก ค่าสองค่าจะถูกนำมาจากแป้นพิมพ์และจะถูกเก็บไว้ในตัวแปร 'a' และ 'b' ในบรรทัดที่ 12 ค่าเหล่านี้จะถูกส่งต่อไปยังฟังก์ชันที่เรียกว่า sum 'a' และ 'b' นี้เป็นอาร์กิวเมนต์
ในบรรทัดที่ 16 ฟังก์ชัน sum จะทำงานมันคัดลอกค่า a ถึง num1 และค่า b ถึง num2 ฟังก์ชันนี้จะคืนค่าผลรวมและค่านั้นเก็บเป็นตัวแปร 'ans' (บรรทัดที่ 12) ในที่สุด คำตอบก็จะพิมพ์ออกมาที่หน้าจอ โดยสังเขป บรรทัดที่ 3 แสดงการประกาศ ในขณะที่บรรทัดที่ 16 ถึง 18 แสดงคำจำกัดความ
ความแตกต่างระหว่างการประกาศและคำจำกัดความใน C คืออะไร
Declaration คือต้นแบบที่ระบุชื่อฟังก์ชันและลายเซ็นประเภท เช่น ประเภทข้อมูล ประเภทการส่งคืน และพารามิเตอร์ แต่ละเว้นเนื้อหาของฟังก์ชัน คำจำกัดความระบุชื่อฟังก์ชันและลายเซ็นประเภท เช่น ชนิดข้อมูล ชนิดส่งคืน และพารามิเตอร์ และรวมถึงเนื้อหาของฟังก์ชัน ประกาศจะบอกคอมไพเลอร์เกี่ยวกับชื่อฟังก์ชันและวิธีการเรียกใช้ ในทางกลับกัน คำจำกัดความประกอบด้วยการใช้งานฟังก์ชันจริง มันอธิบายงานของฟังก์ชัน
สรุป – คำประกาศเทียบกับคำจำกัดความใน C
ความแตกต่างระหว่างการประกาศและคำจำกัดความใน C คือการประกาศในภาษา C จะบอกคอมไพเลอร์เกี่ยวกับชื่อฟังก์ชัน ประเภทการส่งคืน และพารามิเตอร์ ในขณะที่คำจำกัดความใน C มีการใช้งานฟังก์ชันจริง