ΠΏΡΠΎΠ΅ΠΊΡ
ΠΠ½Π°Π»ΠΈΠ·Π°ΡΠΎΡΡΡ Π΅ ΡΠ²ΡΡΠ·Π°Π½ ΠΊΠ°ΡΠΎ ΠΌΠΎΠ΄ΡΠ» (βfrom inlinec import inlinecβ), ΠΊΠΎΠΉΡΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½Π°ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ ΠΏΡΠ΅Π²Π΅ΠΆΠ΄Π° Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΠΈΡΠ΅ Π½Π° C ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° @inlinec Π°Π½ΠΎΡΠ°ΡΠΈΠΈ, Π² ctypes ΡΠ²ΡΡΠ·Π²Π°Π½ΠΈΡ ΠΈ Π·Π°ΠΌΠ΅ΡΡΠ²Π° ΡΡΠ»ΠΎΡΠΎ Π½Π° C ΡΡΠ½ΠΊΡΠΈΡΡΠ° Ρ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π·ΠΈ ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½ΠΈΡ. Π‘Π»Π΅Π΄ ΡΠ°ΠΊΠ°Π²Π° ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡΡ Π½Π° Python ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠ°Π½ ΠΈΠ·Ρ
ΠΎΠ΄Π΅Π½ ΡΠ΅ΠΊΡΡ Π½Π° ΡΠΊΡΠΈΠΏΡΠ°, Π² ΠΊΠΎΠΉΡΠΎ C ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ Ρ
# ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅: inlinec
ΠΎΡ inlinec ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°Π½Π΅ inlinec
@inlinec
def ΡΠ΅ΡΡ ():
#Π²ΠΊΠ»ΡΡΠ²Π°
void test() {
printf("ΠΠ΄ΡΠ°Π²Π΅ΠΉ, ΡΠ²ΡΡ");
}
ΠΠΎΡΠ΅Π³Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½Π° ΠΊΠ°ΡΠΎ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π΅Π½ ΠΏΡΠΎΡΠΎΡΠΈΠΏ, ΠΊΠΎΠΉΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° ΡΠ°ΠΊΠΈΠ²Π° Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ ΠΊΠ°ΡΠΎ Π»ΠΈΠΏΡΠ°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ (Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅) ΠΊΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΡΠ°, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅
βgcc -Eβ Π·Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΊΠΎΠ΄, Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ *.so, *.o ΠΈ *.c ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, Π±Π΅Π· ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π½Π΅Π½ΡΠΆΠ½ΠΈ Π΅ΡΠ°ΠΏΠΈ Π½Π° Π°Π½Π°Π»ΠΈΠ· (Π³ΠΎΠ»Π΅ΠΌΠΈ Π·Π°Π±Π°Π²ΡΠ½ΠΈΡ ΠΏΡΠΈ Π²ΡΡΠΊΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru