Cython(二)

Cython的类型

1 类型定义

1.1 定义一个C变量:

1.1.1 在Cython里定义一个C变量和C语言类似,不同的地方就是在声明的最前面要加上cdef,另外,末尾不用加分号”;“如:

cdef int an[10]

cdef int n = 123

cdef int *pn = &n

printf(“%d \n”,pn[0])

1.1.2 这里要注意的是,以Cython里不能用类似*ptr这样代码来对指针变量进行取值,而必须用ptr[0]这样的形式,如上面的例子中,printf(“%d\n”,*pn)是编译通不过的

1.2 定义一个Python对象

1.2.1 和Python没有区别,直接给一个变量名赋值即可,如:

b = [1,2,3]

a = ‘hello,world’

1.2.2 每个变量名实现上都是一个Python对象指针

2 类型转换

2.1 在Cython里用<>替代了()来进行类型转换,如:

cdef float a= 123.456

cdef int b

b = a

2.2 再如:

cdef int n

a = ‘hello,world’

n = a

2.2.1 这里要注意的是:n = a 把一个Python字符串对象指针强制转换成了一个整形变量,这在封装回调函数时经常会用到强制将一个Python对象指针强制转换成C类型的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值