تبلیغات


فراخوانی توابع C در پایتون به روش CTypes

سه روش برای فراخوانی توابع C در کدهای پایتون وجود دارد که عبارتند از (ctypes، swig، python/c api) . هر روش مزایا و معایب مربوط به خودش را دارد. در این پست قصد داریم به آموزش روش ctypes بپردازیم.

اولا، چرا می خواهیم کد C را در پایتون اجرا کنیم؟!

  1.  می دانیم که C حدود ۵۰ برابر سریعتر از پایتون است.
  2. و دسترسی به منابع سطح پایین در C به راحتی فراهم می شود.

CTypes:

ماژول ctypes پایتون یکی از آسان‌ترین روش برای فراخوانی توابع C از پایتون است. ماژول ctypes سازگار با انواع داده ها و توابع را برای بارگذاری DLLs را فراهم می‌کند. به طوری که تماس‌ها را می توان به کتابخانه‌های مشترک C بدون نیاز به اصلاح آن‌ها انجام داد. 

 

خب بریم سر وقت یک مثال در C

خب در این قطعه کد دو تابع بازگشتی وجود دارد، در قسمت تابع abs یک ورودی می گیرد و قدر مطلق آن رو بر می گرداند و در تابع add دو تا ورودی می گیرد، سپس آن ها رو باهم جمع و مقدار جمع شده را بر می گرداند.

در قدم بعدی میریم سراغ کامپایل کد C

کدهای C که نوشتیم در فایلی به نام main.c وجود دارد با استفاده از دستور بالا آن را کامپایل می کنیم نتیجه مورد نظر فایلی را با پسوند so.  به ما تحویل می دهد!

قدم اخر میرم سر وقته کد های پایتون

ماژول ctypes پایتون را import می کنیم. با استفاده از تابع CDLL فایلی را که پسوند so تولید کردیم رو مینویسیم. و آن را در یک متغیر می ریزیم

خب تمام شد 🙂 حالا می توانیم توابعی را که در کد C نوشتیم به راحتی اجرا و استفاده کنیم.

نتیجه

 

 


تبلیغات:

نظرتان را برای ما بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *