Zig Academy · บทเรียน

นำเข้าส่วนหัว C ด้วย @cImport

ใช้คำประกาศของ C จาก Zig

บทเรียน 1 จาก 413 ขั้นตอน

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

Zig ติดต่อกับ C

Zig ใช้ไลบรารี C ได้โดยตรงโดยไม่ต้องมีชั้นเชื่อมโยงแยกต่างหาก สะพานเชื่อมนี้เริ่มต้นด้วย @cImport ในตัว

@cImport ทำอะไร

@cImport เรียกใช้คอมไพเลอร์ C ของ Zig กับไฟล์ C ขนาดเล็กที่คุณระบุ จากนั้นเปิดเผยการประกาศทุกอย่างที่พบเป็นเนมสเปซ Zig ปกติ

รวมส่วนหัว

ภายในคำเรียกใช้ ให้ระบุส่วนหัวด้วย @cInclude แต่ละรายการจะระบุชื่อส่วนหัว C เช่นเดียวกับบรรทัด #include ของ C

const c = @cImport({
    @cInclude("stdio.h");
});

เนมสเปซของ C

ผลลัพธ์เป็น const ของ Zig ตามปกติ คุณเข้าถึงชื่อของ C ผ่านจุดได้ เช่นเดียวกับเนมสเปซ struct อื่น ๆ ของ Zig

c.printf("hi\n");

เรียกใช้ที่ระดับบนสุด

วาง @cImport ไว้ในขอบเขตไฟล์ เพื่อให้ทั้งโมดูลใช้งานได้ ระบบจะประเมินเพียงครั้งเดียวขณะคอมไพล์ ไม่ใช่ขณะรัน

หลายส่วนหัว

@cImport หนึ่งรายการสามารถดึงส่วนหัวหลายรายการเข้ามาได้ เพิ่มบรรทัด @cInclude แล้วทั้งหมดจะใช้เนมสเปซรวมเดียวกัน

const c = @cImport({
    @cInclude("stdio.h");
    @cInclude("stdlib.h");
});

กำหนดแมโครก่อน

ใช้ @cDefine ก่อน include เพื่อกำหนดแมโคร C เช่นเดียวกับการส่งแฟล็ก -D ให้คอมไพเลอร์ C

const c = @cImport({
    @cDefine("_GNU_SOURCE", "");
    @cInclude("stdio.h");
});

ยกเลิกการกำหนดเมื่อจำเป็น

@cUndef ที่ใช้คู่กันจะลบแมโครออกก่อนประมวลผลส่วนหัว ในกรณีที่ค่าตั้งต้นอาจรบกวนการทำงาน

เกิดขึ้นขณะคอมไพล์

ทุกอย่างภายใน @cImport เกิดขึ้นที่เวลาคอมไพล์ Zig จะแยกวิเคราะห์ C แปลเป็น Zig และมอบการประกาศ Zig ที่พร้อมใช้งานให้คุณ

ค่าคงที่ถูกนำเข้ามาด้วย

แมโคร C ที่ขยายเป็นค่าธรรมดาจะกลายเป็นค่าคงที่ของ Zig ที่ใช้งานได้ ดังนั้นค่าอย่าง EXIT_SUCCESS จึงอยู่ในเนมสเปซพร้อมใช้

return c.EXIT_SUCCESS;

สะพานเดียว ได้ใช้ C จริง

ด้วย @cImport เพียงรายการเดียว คุณจะได้ฟังก์ชัน ชนิดข้อมูล และค่าคงที่ทั้งหมดของไลบรารี C มาเรียกใช้จากโค้ด Zig ที่เขียนตามแนวทางปกติได้

ตรวจสอบอย่างรวดเร็ว

ทบทวนว่าบิวท์อินใดนำการประกาศของ C เข้ามาใน Zig

สรุปทบทวน

คุณได้เห็นว่า @cImport ร่วมกับ @cInclude เปลี่ยนส่วนหัว C ให้เป็นเนมสเปซ Zig ขณะคอมไพล์ ทำให้เรียกใช้ฟังก์ชันและค่าคงที่ของ C ได้โดยตรง 🎯

เริ่มต้นได้ฟรี

เรียนรู้ Zig ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

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

บทเรียน “นำเข้าส่วนหัว C ด้วย @cImport” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “นำเข้าส่วนหัว C ด้วย @cImport”

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

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

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

บทเรียน “นำเข้าส่วนหัว C ด้วย @cImport” ใช้เวลานานแค่ไหน

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

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

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

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

  1. นำเข้าส่วนหัว C ด้วย @cImport
  2. การเรียกฟังก์ชัน C และการเชื่อมโยง
  3. พอยน์เตอร์ สตริง และชนิดข้อมูลของ C
  4. zig translate-c เพื่ออ่าน C ในรูปแบบ Zig
← กลับไปที่ Zig Academy