Inlinec - ื“ืจืš ื—ื“ืฉื” ืœื”ืฉืชืžืฉ ื‘ืงื•ื“ C ื‘ืกืงืจื™ืคื˜ื™ื ืฉืœ Python

ืคึผืจื•ึนื™ึถืงื˜ inlinec ื”ื•ืฆืขื” ืฉื™ื˜ื” ื—ื“ืฉื” ืœืฉื™ืœื•ื‘ ืžื•ื˜ื‘ืข ืฉืœ ืงื•ื“ C ืœืชื•ืš ืกืงืจื™ืคื˜ื™ื ืฉืœ Python. ืคื•ื ืงืฆื™ื•ืช C ืžื•ื’ื“ืจื•ืช ื™ืฉื™ืจื•ืช ื‘ืื•ืชื• ืงื•ื‘ืฅ ืงื•ื“ ืฉืœ Python, ืžื•ื“ื’ืฉื•ืช ืขืœ ื™ื“ื™ ืžืขืฆื‘ "@inlinec". ืกืงืจื™ืคื˜ ื”ืกื™ื›ื•ื ืžื‘ื•ืฆืข ื›ืคื™ ืฉื”ื•ื ืขืœ ื™ื“ื™ ืžืชื•ืจื’ืžืŸ Python ื•ืžื ืชื— ื‘ืืžืฆืขื•ืช ื”ืžื ื’ื ื•ืŸ ื”ืžืกื•ืคืง ื‘- Python ืงื•ื“ืงื™ื, ื”ืžืืคืฉืจ ืœื—ื‘ืจ ืžื ืชื— ื›ื“ื™ ืœื”ืคื•ืš ืืช ื”ืกืงืจื™ืคื˜ ืœืคื ื™ ื ื™ืชื•ื—ื• ืขืœ ื™ื“ื™ ื”ืžืชื•ืจื’ืžืŸ (ื›ื›ืœืœ, ืžื•ื“ื•ืœ ื”ืงื•ื“ืงื™ื ืžืฉืžืฉ ืœื”ืžืจืช ื˜ืงืกื˜ ืฉืงื•ืฃ, ืืš ื”ื•ื ื’ื ืžืืคืฉืจ ืœื”ืคื•ืš ืืช ืชื•ื›ืŸ ื”ืกืงืจื™ืคื˜ ื‘ืื•ืคืŸ ืฉืจื™ืจื•ืชื™).

ื”ืžื ืชื— ืžื—ื•ื‘ืจ ื›ืžื•ื“ื•ืœ ("ืž-inlinec import inlinec"), ืฉืžื‘ืฆืข ืืช ื”ืขื™ื‘ื•ื“ ื”ืจืืฉื•ื ื™ ื•ืžืชืจื’ื ืชื•ืš ื›ื“ื™ ืชื ื•ืขื” ืืช ื”ื”ื’ื“ืจื•ืช ืฉืœ ืคื•ื ืงืฆื™ื•ืช C ื”ืžื•ื“ื’ืฉื•ืช ื‘ืืžืฆืขื•ืช ื‘ื™ืื•ืจื™ื @inlinec ืœ-ctypes bindings ื•ืžื—ืœื™ืฃ ืืช ื’ื•ืฃ ื”ืคื•ื ืงืฆื™ื” C ืขื ืงืจื™ืื” ืœื›ืจื™ื›ื•ืช ืืœื•. ืœืื—ืจ ื˜ืจื ืกืคื•ืจืžืฆื™ื” ื›ื–ื•, ืžืชื•ืจื’ืžืŸ Python ืžืงื‘ืœ ืืช ื˜ืงืกื˜ ื”ืžืงื•ืจ ื”ืžื•ืžืจ ื”ื ื›ื•ืŸ ืฉืœ ื”ืกืงืจื™ืคื˜, ืฉื‘ื• ื ืงืจืื•ืช ืคื•ื ืงืฆื™ื•ืช C ื‘ืืžืฆืขื•ืช ืกื•ื’ื™ื. ืฉื™ื˜ื” ื“ื•ืžื” ืžืฉืžืฉืช ื’ื ื‘ืคืจื•ื™ืงื˜ Pyxl4, ื”ืžืืคืฉืจ ืœืขืจื‘ื‘ HTML ื•ืงื•ื“ Python ื‘ืงื•ื‘ืฅ ืื—ื“.

# ืงื™ื“ื•ื“: inlinec
ืž-inlinec ื™ื‘ื•ื inlinec

@inlinec
def test():
#ืœึดื›ืœื•ึนืœ
void test() {
printf("ืฉืœื•ื ืขื•ืœื");
}

ื”ืคื™ืชื•ื— ืžื•ืฆื’ ืขื“ ื›ื” ื›ืื‘ ื˜ื™ืคื•ืก ื ื™ืกื™ื•ื ื™, ื”ืžื›ื™ืœ ื—ืกืจื•ื ื•ืช ื›ืžื• ื”ื™ืขื“ืจ ืชืžื™ื›ื” ื‘ื”ืขื‘ืจืช ืžืฆื‘ื™ืขื™ื (ืœืžืขื˜ ืžื—ืจื•ื–ื•ืช) ืœืคื•ื ืงืฆื™ื”, ื”ืฆื•ืจืš ืœืจื•ืฅ
"gcc -E" ืœืขื™ื‘ื•ื“ ืžืงื“ื™ื ืฉืœ ืงื•ื“, ืฉืžื™ืจืช ืงื‘ืฆื™ *.so, *.o ื•-*.c ื‘ื™ื ื™ื™ื ื‘ืกืคืจื™ื™ื” ื”ื ื•ื›ื—ื™ืช, ืื™ ืื—ืกื•ืŸ ื‘ืžื˜ืžื•ืŸ ืฉืœ ื”ื’ืจืกื” ื”ืžื•ืžืจืช ื•ื‘ื™ืฆื•ืข ืฉืœื‘ื™ ื ื™ืชื•ื— ืžื™ื•ืชืจื™ื (ืขื™ื›ื•ื‘ื™ื ืืจื•ื›ื™ื ื‘ื›ืœ ืคืขื ืฉื”ื™ื ืคื•ืขืœืช).

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”