Have you ever encountered a situation where you had to call a C function using python? This article will help you at a very basic level, and if you haven't come across this situation, you'll be happy to know how it's done.
First, let’s write a simple function in C and generate a shared library for that file. Assume the file name is 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 }
Compilation:
cc -fPIC -shared -o libfun.so function.c
Use the ctypes (external function interface) library to call C functions from Python
The above statement will generate a file called libfun .so shared library. Now, let's see how to use it in python. In python we have a library called ctypes. Using this library we can use C functions in python.
Assume the file name is 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)
This article is an introduction to the method of calling C functions in Python. I hope it will be helpful to friends in need!
The above is the detailed content of How to call C function in Python. For more information, please follow other related articles on the PHP Chinese website!