Zig Academy · درس

استيراد ترويسات C باستخدام ‎@cImport‎

استخدم تصريحات C من Zig

الدرس 1 من 413 خطوة

استيراد ترويسات C باستخدام ‎@cImport‎ درس مجاني في Zig Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 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 من خلالها باستخدام صيغة النقطة، تمامًا كما هو الحال مع أي مساحة أسماء لبنية في Zig.

c.printf("hi\n");

الاستدعاء على مستوى الملف

ضع @cImport على مستوى الملف لكي تتمكن الوحدة بأكملها من استخدامه. ويُقيَّم مرة واحدة في وقت الترجمة، لا في وقت التشغيل.

ترويسات متعددة

يمكن لـ @cImport واحد جلب عدة ترويسات. أضف أسطر @cInclude أخرى، وستشترك جميعها في مساحة أسماء موحّدة.

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

تعريف وحدات الماكرو أولًا

استخدم @cDefine قبل التضمين لتعيين وحدة ماكرو في C، تمامًا كما تمرر الخيار -D إلى مترجم C.

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

إلغاء التعريف عند الحاجة

يزيل @cUndef المطابق وحدة ماكرو قبل تحليل الترويسات، في حال كان الافتراضي سيعيق عملك.

إنه وقت الترجمة

كل ما يوجد داخل @cImport يحدث في وقت الترجمة. يحلل Zig لغة C ويترجمها، ثم يزوّدك بتصريحات Zig جاهزة للاستخدام.

تنتقل الثوابت أيضًا

تصبح وحدات ماكرو C التي تتمدد إلى قيم بسيطة ثوابت قابلة للاستخدام في Zig، لذلك تكون أشياء مثل EXIT_SUCCESS موجودة مباشرةً في مساحة الأسماء.

return c.EXIT_SUCCESS;

جسر واحد، وC حقيقية

باستخدام @cImport واحد، تحصل على دوال مكتبة C كاملة وأنواعها وثوابتها، وكلها قابلة للاستدعاء من شيفرة Zig بأسلوبها المعتاد.

تحقق سريع

تذكّر أي builtin يجلب تصريحات C إلى Zig.

مراجعة

رأيت أن استخدام @cImport مع @cInclude يحوّل ترويسات C إلى مساحة أسماء في Zig وقت الترجمة، ويوفّر لك دوال C وثوابتها مباشرةً. 🎯

البدء مجانًا

تعلم Zig مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
30
الدروس
120

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

هل درس «استيراد ترويسات C باستخدام ‎@cImport‎» مجاني؟

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

ماذا ستتعلم في «استيراد ترويسات C باستخدام ‎@cImport‎»؟

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

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

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

كم من الوقت يستغرق درس «استيراد ترويسات C باستخدام ‎@cImport‎»؟

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

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

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

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

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