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 での使い方を見てみましょう。 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 中国語 Web サイトの他の関連記事を参照してください。