ホームページ  >  記事  >  バックエンド開発  >  PythonでC関数を呼び出す方法

PythonでC関数を呼び出す方法

藏色散人
藏色散人オリジナル
2019-01-22 14:56:563505ブラウズ

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。