Cython基础--Cython的语句和表达式

本文介绍了Cython编程语言中与Python不同的语法规则,包括使用"."替代"->",使用p[0]代替"*"进行指针取值,以及Cython的NULL和强制类型转换。Cython对for循环进行了优化,支持Python的for-in-range形式,并能将其转换为C代码,但要求循环变量和范围为整数。对于浮点数循环,需使用while语句。
摘要由CSDN通过智能技术生成

Cython的语句和表达式

1 Cython的语句和表达式遵循的是Python的语法

2 但是由于Cython融合了C语言的语法,有些区别也要注意一下:

2.1 Cython里没有“->”操作符,用"."代替,这在上一节结构体的使用中己讲过

2.2 Cython里没有指针的取值操作符“*”,用p[0]代替*p

2.3 Cython里也有取一个变量的地址操作符&

2.4 在Cython里空指针用NULL表示,而且NULL是保留关键字,不能用0表示,除非用强制转换虽然大家知道NULL的值其实就是0

2.5 Cython里用<>来进行强制转换,而不像是C/C++里的(),如:

cdef int a

cdef int *b = &a

a = <int>b


3 关于Cython的for循环  

3.1 Cython里同样支持Python里的for-in-range形式的for循环

3.2 出于性能的考虑,Cython对for循环作了优化,如for i in range(n),如果i是一个预先通过cdef 定义的变量,那么Cython会将这样的for循环转成C代码,举个例子:

cdef int i

for i in range(0,10,2):

    printf("%d\n",i)

 

3.3 翻译后的C代码变成:

  for (__pyx_t_1 = 0; __pyx_t

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值