0Pricing
Zig Academy · درس

استدعاء دوال C والربط

اربط بـ libc والمكتبات الخارجية

استدعاء دوال C والربط درس مجاني في Zig Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Zig Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Zig Academy 4 دروس في المجموع.

الاستيراد ليس الربط

يوفّر لك @cImport التصريحات، لكن الشيفرة الآلية الفعلية تظل موجودة في مكتبة C التي يجب أن تربطها.

الربط مع libc

تحتاج معظم استدعاءات C إلى مكتبة C القياسية. أخبر نظام البناء بأن يربط libc لكي تُحل دوال مثل printf وقت الربط.

exe.linkLibC();

الربط من سطر الأوامر

للتشغيل السريع، مرّر الخيار بنفسك. يربط -lc مكتبة libc عند ترجمة ملف واحد مباشرةً.

zig build-exe main.zig -lc

استدعاء مثل الشيفرة الأصلية

بعد الربط، تُستدعى دالة C تمامًا مثل دالة Zig. تكتب c.printf(...) ويتولى Zig التعامل مع اصطلاح الاستدعاء.

c.printf("%d\n", 42);

طابق التوقيع

يجب تمرير وسائط توافق توقيع C. وتُعد الأنواع الخاطئة خطأً في الترجمة، لأن Zig يعرف النموذج الأولي المترجم.

ربط مكتبة مسماة

بالنسبة إلى المكتبات الأخرى، سمّها. يخبر linkSystemLibrary الرابط بإدراج شيء مثل مكتبة الرياضيات.

exe.linkSystemLibrary("m");

تعود القيم المرجعة

تصل القيمة المرجعة من دالة C كـ قيمة عادية في Zig من النوع المترجم، وتكون جاهزة للتخزين أو الاختبار.

const n = c.abs(-5);

تستخدم الأخطاء اصطلاحات C

لا تحتوي C على اتحادات أخطاء، لذلك تظهر حالات الفشل على شكل رموز إرجاع أو errno معيّن. وعليك فحصها يدويًا بطريقة C.

لا توجد مواءمة مخفية

لا يجري Zig أي تحويل صامت لبياناتك. فما تمرره هو ما تستلمه C، مما يحافظ على رخص الاستدعاء وقابليته للتوقع.

توصيل ملف البناء

في build.zig، تربط إعدادات الربط بالعنصر البرمجي. وتسجل خطوة exe نفسها التي تترجم شيفرتك مكتباتها أيضًا.

exe.linkLibC();
exe.linkSystemLibrary("z");

خطوتان للنجاح

يتطلب استدعاء C دائمًا الاستيراد والربط: اجلب التصريحات، ثم تأكد من إتاحة الرموز الفعلية للرابط.

تحقق سريع

فكّر في ما يجعل دالة C تُحل فعليًا.

مراجعة

تعلّمت أن استدعاء C يحتاج إلى الاستيراد والربط معًا، وبعد ذلك تُستدعى دوال C مثل دوال Zig الأصلية تمامًا. 🎯

الأسئلة الشائعة

هل درس «استدعاء دوال C والربط» مجاني؟

نعم — نص درس «استدعاء دوال C والربط» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Zig Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Zig Academy 4 دروس في المجموع.

ماذا ستتعلم في «استدعاء دوال C والربط»؟

اربط بـ libc والمكتبات الخارجية تتمرن على Zig Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Zig Academy؟

لا تُشترط خبرة سابقة. Zig Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «استدعاء دوال C والربط»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Zig Academy هذا؟

نعم. كل درس في Zig Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. استيراد ترويسات C باستخدام ‎@cImport‎
  2. استدعاء دوال C والربط
  3. مؤشرات C والسلاسل والأنواع
  4. ‏zig translate-c لقراءة C بصيغة Zig
← العودة إلى Zig Academy