我在python中为(硬件)C接口创建一个非常基本的(覆盖)单元测试。
该C接口的功能需要内存地址,因为它直接与内存通信。
该功能的原型是:
void function( ulong startAddress, ulong endAddress, ulong curAddress, nofPaddingElements )
startAddress,endAddress和curAddress基本上是结构数组的内存地址。
在网上(和stackoverflow ;-))我发现如果我想用ctypes做某事的引用,那就是我使用的。
对于startAddress和curAddress,可以跟随http://starship.python.net/crew/theller/ctypes/tutorial.html#arrays和http://starship.python.net/crew/theller/ctypes/tutorial.html#pointers获取指向第一个条目地址的指针和指向当前条目地址的指针。
但是endAddress是问题所在 它是需要由函数分配的存储区的真实结束地址 因此,对于10长的整数数组,它将意味着i [10]'的地址。如果你理解我的意思(实际上,我可以使用i [0]直到我[9],但我的意思是我[10]第10个条目结束的地址/第11个条目将开始==>数组的结束地址。)
有人知道如何通过python / ctypes获取这个结束地址吗?
(重构C代码,因此它不需要结束地址,不是一个选项,它已经正常工作多年,它只有没有单元测试)
哦顺便问一下。我目前使用的软件版本是使用python 2.5(后来的版本使用python 2.7,但首先需要在此版本上开发)