[0]zero-index clytie0x/zero-index

บทที่ 8 ฟังก์ชัน

จบบทนี้ น้องจะแบ่งโปรแกรมยาวๆ ออกเป็นฟังก์ชันเล็กที่แต่ละตัวทำงานเดียว เช่น is_prime gcd max_of_array print_row แล้วประกอบกันใน main ให้อ่านเหมือนลำดับขั้นตอน โจทย์ TOI Zero ระดับ A2 ส่วนใหญ่มีหลายขั้นตอนซ้อนกัน เช่น ตรวจจำนวนเฉพาะของเลขที่กลับหลักแล้ว นับวันระหว่างสองวันที่ หรือวาดรูปจากชิ้นส่วนซ้ำๆ ถ้าเขียนกองรวมใน main จะยาวและหาบั๊กยาก บทนี้ยังอธิบายว่าทำไมฟังก์ชันแก้ตัวแปรที่ส่งเข้าไปไม่ได้ แต่แก้อาเรย์ได้ และตัวแปร global ที่ชื่อซ้ำกันทำให้คำตอบผิดเงียบๆ ได้อย่างไร

ในบทนี้

หน้าได้อะไร
8.1 เขียนและเรียกฟังก์ชันทำไมต้องแบ่งโค้ด void พารามิเตอร์ return ลำดับการทำงานตอนเรียก และ prototype
8.2 ส่งค่าแบบสำเนาเห็นกับตาว่าแก้พารามิเตอร์แล้วตัวแปรข้างนอกไม่เปลี่ยน คืนค่าแทน และชนิดที่ถูกแปลงตอนส่ง
8.3 ส่งอาเรย์และสตริงให้ฟังก์ชันส่งความยาวไปด้วย ฟังก์ชันแก้อาเรย์ได้ ชุดฟังก์ชัน read_array max_of_array อาเรย์สองมิติ และสตริง
8.4 ขอบเขตของตัวแปรlocal global static ชื่อซ้ำกัน และบั๊กจากตัวแปร global ที่เจอบ่อยในโค้ดแข่งขัน
8.5 math.h และฟังก์ชันคณิตศาสตร์ที่ใช้บ่อยsqrt pow fabs กับดักของ pow กับจำนวนเต็มใหญ่ is_prime และ gcd

ผ่านบทนี้เมื่อ