السلطان
  1. الرئيسية
  2. الأمثلة
  3. الاستدعاء الخارجي

نداء دالة من مكتبة C عبر `خارجي`

النداء يحتاج `غير_آمن`.

ffi/extern_call.sn
// نداء دالة من مكتبة C عبر `خارجي`؛ النداء يحتاج `غير_آمن`.
// للبناء مع ربط مكتبة C: sultanc extern_call.sn -l c
// أو للتفسير: يجد sultanc interpret extern_call.sn الدالة labs وقت التشغيل
// (docs/en/internals/interpreter.md، «Dynamic C functions»).
استورد std.io.println;
استورد std.text.number;

خارجي عرف labs(القيمة: ص64): ص64;

عرف الرئيسية(): عدد {
    دع البعد: متغير ص64 = 0;
    غير_آمن {
        البعد := labs(-1234);
    }
    اطبع_سطر(عدد_إلى_نص(البعد مثل عدد));
    أرجع 0;
}

التشغيل

بالمفسر، دون ترجمة:

./build/sultanc run examples/ar/ffi/extern_call.sn

أو ترجمه إلى ملف تنفيذي:

./build/sultanc examples/ar/ffi/extern_call.sn -o build/example && ./build/example

المصدر على GitHub   كل الأمثلة