Inlinec – ọna tuntun lati lo koodu C ni awọn iwe afọwọkọ Python

Ise agbese inlinec Ọna tuntun fun isọpọ inline ti koodu C si awọn iwe afọwọkọ Python ti ni imọran. Awọn iṣẹ C jẹ asọye taara ni faili koodu Python kanna, ti a ṣe afihan nipasẹ ohun ọṣọ “@inlinec”. Iwe afọwọkọ akopọ ti wa ni ṣiṣe bi o ṣe jẹ nipasẹ olutumọ Python ati ṣe itupalẹ nipa lilo ẹrọ ti a pese ni Python awọn kodẹki, eyi ti o mu ki o ṣee ṣe lati sopọ parser kan lati yi iwe afọwọkọ pada ṣaaju ki o to ṣe apejuwe rẹ nipasẹ onitumọ (gẹgẹbi ofin, a lo module codecs fun transcoding ọrọ ti o ni gbangba, ṣugbọn o tun fun ọ laaye lati yi awọn akoonu inu iwe afọwọṣe pada lainidii).

Asopọmọra naa ti sopọ bi module (“lati inu inlinec agbewọle inlinec”), eyiti o ṣe sisẹ akọkọ ati lori-fly tumọ awọn asọye ti awọn iṣẹ C ti a ṣe afihan nipa lilo awọn alaye @inlinec sinu awọn abuda ctypes ati rọpo ara ti iṣẹ C pẹlu ipe si awọn wọnyi ìde. Lẹhin iru iyipada bẹẹ, olutumọ Python gba ọrọ orisun iyipada ti o tọ ti iwe afọwọkọ, ninu eyiti a pe awọn iṣẹ C ni lilo ctypes. Ọna kanna ni a tun lo ninu iṣẹ naa Pyxl4, eyiti o fun ọ laaye lati dapọ koodu HTML ati Python ninu faili kan.

# ifaminsi: inlinec
lati inlinec agbewọle inlinec

@inlinec
idanwo ():
#pẹlu
igbeyewo ofo () {
printf ("Hello, aye");
}

Idagbasoke naa ti gbekalẹ bi apẹrẹ idanwo, eyiti o ni iru awọn aito bi aini atilẹyin fun awọn itọka gbigbe (ayafi awọn okun) si iṣẹ naa, iwulo lati ṣiṣẹ
"gcc -E" fun iṣaju koodu, fifipamọ agbedemeji * .so, * .o ati * .c awọn faili ninu ilana ti o wa lọwọlọwọ, kii ṣe caching ti ikede ti o yipada ati ṣiṣe awọn ipele ti ko ni dandan (awọn idaduro gigun ni gbogbo igba ti o nṣiṣẹ).

orisun: opennet.ru

Fi ọrọìwòye kun