日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:c怎么與python交互

C++types是python的一個外部庫,可以使用python語言調(diào)用已經(jīng)編譯好的C語言函數(shù)以及數(shù)據(jù)類型并進行數(shù)據(jù)交換等。ctypes的官方文檔在https://docs.python.org/3/library/ctypes.html

10多年的潁州網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整潁州建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)建站從事“潁州網(wǎng)站設(shè)計”,“潁州網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

1、ctypes基本數(shù)據(jù)類型映射表

2、python調(diào)用c語言的函數(shù)庫

(1)生成c語言函數(shù)

#Step 1:  test.c
#include 
int add(int a, int b)
{
    return a + b;
}

(2)編譯動態(tài)鏈接庫生成 libtest.so文件(DLL)

gcc -fPIC -shared test.c -o libtest.so

(3)調(diào)用DLL文件

#Step 3:  test.py
from ctypes import *
mylib = CDLL("libtest.so")或者cdll.LoadLibrary("libtest.so")   
add = mylib.add
add.argtypes = [c_int, c_int]  # 參數(shù)類型,兩個int(c_int是ctypes類型,見上表)
add.restype = c_int # 返回值類型,int (c_int 是ctypes類型,見上表)
sum = add(3, 6)

3、指針和引用

對指針實例賦值只會改變其指向的內(nèi)存地址,而不是改變內(nèi)存的內(nèi)容。指針實例有一個contents屬性,返回這個指針所指向的對象。

from ctype import *  
i = c_int(1)  
pi = POINTER(c_int)(i)  
pi2 = pointer(i)
print pi.contents  #返回指針指向?qū)ο蟮闹?print pi2.contents

pointer 和 POINTER 的區(qū)別是,pointer 返回一個實例,POINTER 返回一個類型。

4、結(jié)構(gòu)類型數(shù)據(jù)

Structures和Unions必須繼承Structure和Union基礎(chǔ)類,它們都在ctypes模塊中定義,每一個子類必須定義個fields屬性,fields是一個二維的tuples列表,包含著每個field的name及type,這field類型必須是一個ctypes類型,如c_int,或者任何其他的繼承ctypes的類型,如Structure、Union、Array、指針等。

from ctypes import *
import types
class Test(Structure):
    _fields_ = [('x', c_int),('y', c_char)]
test1 = Test(1, 2)

如結(jié)構(gòu)體用于鏈表操作,即包含指向結(jié)構(gòu)體指針時,則需如下定義:

from ctypes import *  
import types  
class Test(Structure):  
    pass  
Test._fields_ = [('x', c_int),('y', c_char),('next', POINTER(Test))]

python學習網(wǎng),大量的免費python視頻教程,歡迎在線學習!


當前題目:創(chuàng)新互聯(lián)Python教程:c怎么與python交互
轉(zhuǎn)載來于:http://m.5511xx.com/article/cccpcgp.html