如何在Python中呼叫C函數

藏色散人
發布: 2019-01-22 14:56:56
原創
3506 人瀏覽過

您是否遇到過必須使用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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板