>  기사  >  백엔드 개발  >  Python에서 C 함수를 호출하는 방법

Python에서 C 함수를 호출하는 방법

藏色散人
藏色散人원래의
2019-01-22 14:56:563503검색

파이썬을 사용하여 C 함수를 호출해야 하는 상황을 겪어본 적이 있나요? 이 기사는 매우 기본적인 수준에서 도움이 될 것이며, 이러한 상황을 겪지 않았다면 어떻게 해결되었는지 알게 되어 기쁠 것입니다.

Python에서 C 함수를 호출하는 방법

먼저 C로 간단한 함수를 작성하고 이 파일의 공유 라이브러리를 생성해 보겠습니다. 파일 이름이 function.c라고 가정합니다.

int myFunction(int num) 
{ 
    if (num == 0) 
  
        //如果number为0,则不执行任何操作。 
        return 0; 
    else
        // 如果number是2的幂,则返回1,否则返回0
          
    num & (num - 1) == 0 ? return 1 : return 0 
}

컴파일:

cc -fPIC -shared -o libfun.so function.c

ctypes(외부 함수 인터페이스) 라이브러리를 사용하여 Python에서 C 함수를 호출합니다.

위 명령문은 libfun.so라는 공유 라이브러리를 생성합니다. 이제 파이썬에서 어떻게 사용하는지 살펴보겠습니다. Python에는 ctypes라는 라이브러리가 있습니다. 이 라이브러리를 사용하면 Python에서 C 함수를 사용할 수 있습니다.

파일 이름이 function.py라고 가정합니다.

import ctypes 
NUM = 16      
# libfun loaded to the python file 
# using fun.myFunction(), 
# C function can be accessed 
# but type of argument is the problem. 
                         
fun = ctype.CDLL(libfun.so)   
# Now whenever argument  
# will be passed to the function                                                         
# ctypes will check it. 
            
fun.myFunction.argtypes(ctypes.c_int) 
  
# now we can call this  
# function using instant (fun) 
# returnValue is the value  
# return by function written in C  
# code 
returnVale = fun.myFunction(NUM)

이 글은 Python에서 C 함수를 호출하는 방법에 관한 것입니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

위 내용은 Python에서 C 함수를 호출하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.