0Pricing
C Academy · บทเรียน

มาโครและฟังก์ชันอินไลน์

สำรวจการกำหนดมาโครและข้อดีเมื่อเทียบกับฟังก์ชัน

มาโครและฟังก์ชันอินไลน์ เป็นบทเรียน C Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C Academy มีบทเรียนทั้งหมด 3 บทเรียน

บทนำสู่แมโคร

แมโครและฟังก์ชันอินไลน์

แมโครและฟังก์ชันอินไลน์ช่วยเพิ่มประสิทธิภาพโค้ดโดยลดค่าใช้จ่ายส่วนเกินจากการเรียกฟังก์ชัน

ในบทเรียนนี้ คุณจะได้เรียนรู้:

  • วิธีกำหนดและใช้แมโคร
  • ประโยชน์ของฟังก์ชันอินไลน์เมื่อเทียบกับแมโคร
  • วิธีที่แมโครและฟังก์ชันอินไลน์ช่วยปรับปรุงประสิทธิภาพ
มาโครและฟังก์ชันอินไลน์ — ภาพประกอบ 1

แมโครคืออะไร

แมโครคืออะไร

แมโครคือคำสั่งของตัวประมวลผลล่วงหน้าที่ใช้แทนที่โค้ดก่อนการคอมไพล์

ตัวอย่าง:

#define SQUARE(x) (x * x)

จากนั้น SQUARE(5) จะถูกแทนที่ด้วย (5 * 5) ระหว่างการคอมไพล์

ตัวอย่าง: การใช้แมโคร

ตัวอย่าง: การใช้แมโคร

โปรแกรมนี้สาธิตวิธีใช้แมโครสำหรับการคำนวณ

#include <stdio.h>

#define SQUARE(x) (x * x)

int main() {
    int num = 4;
    printf("Square of %d is %d\n", num, SQUARE(num));
    return 0;
}

ข้อจำกัดของแมโคร

ข้อจำกัดของแมโคร

แมโครไม่ตรวจสอบชนิดข้อมูลและอาจทำให้ได้ผลลัพธ์ที่ไม่คาดคิด

ตัวอย่างปัญหา:

#define MULTIPLY(x, y) x * y

การเรียก MULTIPLY(2 + 3, 4) จะขยายเป็น 2 + 3 * 4 ทำให้ได้ผลลัพธ์ไม่ถูกต้อง

การแนะนำฟังก์ชันอินไลน์

การแนะนำฟังก์ชันอินไลน์

ฟังก์ชันอินไลน์เป็นทางเลือกแทนแมโคร โดยยังคงมีความปลอดภัยด้านชนิดข้อมูล

รูปแบบการใช้งาน:

inline int square(int x) { return x * x; }

ฟังก์ชันเหล่านี้ช่วยลดค่าใช้จ่ายส่วนเกินจากการเรียกฟังก์ชัน แต่ยังคงตรวจสอบชนิดข้อมูลได้อย่างถูกต้อง

ตัวอย่าง: การใช้ฟังก์ชันอินไลน์

ตัวอย่าง: การใช้ฟังก์ชันอินไลน์

โปรแกรมนี้สาธิตการใช้ฟังก์ชันอินไลน์แทนแมโคร

#include <stdio.h>

inline int square(int x) { return x * x; }

int main() {
    int num = 4;
    printf("Square of %d is %d\n", num, square(num));
    return 0;
}

ข้อดีของฟังก์ชันอินไลน์

ข้อดีของฟังก์ชันอินไลน์

ฟังก์ชันอินไลน์มีประโยชน์หลายประการเมื่อเทียบกับแมโคร:

  • มีความปลอดภัยด้านชนิดข้อมูล
  • ดีบักได้ดีกว่า เพราะปรากฏในร่องรอยการเรียกใช้
  • ไม่มีข้อผิดพลาดจากการขยายที่ไม่คาดคิด

ควรใช้แมโครหรือฟังก์ชันอินไลน์เมื่อใด

ควรใช้แมโครหรือฟังก์ชันอินไลน์เมื่อใด

ใช้แมโครเมื่อ:

  • กำหนดค่าคงที่อย่างง่าย
  • ดำเนินการแทนที่ข้อความเล็กน้อย

ใช้ฟังก์ชันอินไลน์เมื่อ:

  • ดำเนินการที่ซับซ้อน
  • ต้องการรับรองความปลอดภัยด้านชนิดข้อมูล

สรุป

สรุป

ในบทเรียนนี้ คุณได้เรียนรู้:

  • วิธีกำหนดและใช้แมโคร
  • ข้อจำกัดของแมโคร
  • วิธีที่ฟังก์ชันอินไลน์เป็นทางเลือกที่ปลอดภัยกว่า

ต่อไป เราจะสำรวจการคอมไพล์แบบมีเงื่อนไข

มาโครและฟังก์ชันอินไลน์ — ภาพประกอบ 10

คำถามที่พบบ่อย

บทเรียน “มาโครและฟังก์ชันอินไลน์” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “มาโครและฟังก์ชันอินไลน์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “มาโครและฟังก์ชันอินไลน์”

สำรวจการกำหนดมาโครและข้อดีเมื่อเทียบกับฟังก์ชัน คุณปฏิบัติ C Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน

บทเรียน “มาโครและฟังก์ชันอินไลน์” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C Academy นี้ได้ไหม

ได้ บทเรียน C Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ทำความเข้าใจตัวประมวลผลล่วงหน้าของ C
  2. มาโครและฟังก์ชันอินไลน์
  3. การคอมไพล์แบบมีเงื่อนไข
← กลับไปที่ C Academy