Inlinec - nzira nyowani yekushandisa C kodhi muPython zvinyorwa

project inlinec Nzira itsva yekubatanidza inline yeC kodhi mune zvinyorwa zvePython yakatsanangurwa. C mabasa anotsanangurwa zvakananga mune imwecheteyo Python kodhi faira, inosimbiswa ne "@inlinec" decorator. Chinyorwa chepfupiso chinoitwa sezviri kuitwa nemuturikiri wePython uye chinopatsanurwa pachishandiswa nzira yakapihwa muPython. codecs, izvo zvinoita kuti zvikwanise kubatanidza parser kuti ishandure script isati yaiparadzanisa nemuturikiri (semutemo, codecs module inoshandiswa pa transparent text transcoding, asi inokubvumirawo kuti ushandure zvisiri izvo zviri mukati mezvinyorwa).

Iyo parser yakabatana semodule ("kubva inlinec import inlinec"), iyo inoita yekutanga kugadzirisa uye pa-iyo-fly inoshandura tsananguro dzeC mabasa akasimbiswa uchishandisa @inlinec annotations mune ctypes bindings uye inotsiva muviri weC basa ne. kudanwa kune zvisungo izvi. Mushure mekushandura kwakadaro, muturikiri wePython anogamuchira iyo chaiyo yakashandurwa sosi mameseji echinyorwa, umo mabasa eC anodanwa kushandisa. ctypes. Imwe nzira yakafanana inoshandiswawo mupurojekiti Pyxl4, iyo inokutendera kuti usanganise HTML nePython kodhi mune imwe faira.

# kukodha: inlinec
kubva inlinec import inlinec

@inlinec
def bvunzo ():
#zvinosanganisira
void test() {
printf ("Mhoro, nyika");
}

Iko kusimudzira kwave kuratidzwa seyekuyedza prototype, iyo ine zvikanganiso sekushaikwa kwerutsigiro rwekupfuura anonongedzera (kunze kwetambo) kune basa, kudiwa kwekumhanya.
"gcc -E" yekugadziridza kodhi, kuchengetedza yepakati *.so, *.o uye *.c mafaera mudhairekitori razvino, kwete caching shanduro yakashandurwa uye kuita nhanho dzisina kufanira dzekuparura (kunonoka nguva imwe neimwe yainomhanya).

Source: opennet.ru

Voeg