นำเข้าส่วนหัว C ด้วย @cImport
ใช้คำประกาศของ C จาก Zig
นำเข้าส่วนหัว 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- นำเข้าส่วนหัว C ด้วย @cImport
- การเรียกฟังก์ชัน C และการเชื่อมโยง
- พอยน์เตอร์ สตริง และชนิดข้อมูลของ C
- zig translate-c เพื่ออ่าน C ในรูปแบบ Zig