Python与C语言混合编程之复数数组的参数传递方法( 四 )
需要说明的是 , 复数类型的指针x和y , 其类型要声明为np.complex128 , 因为在C语言中 , 其实部和虚部都是为double类型(8个字节)的数据 , 所以对应numpy中的复数类型为8*2=16Bytes=128bits 。
在Python中使用这种调用方法的优点是 , 只需在文件中对函数原型声明一次即可 , 虽然在声明时麻烦些 , 但可以在Python中多个地方多次调用该函数 , 且可以直接使用numpy中的数组类型 , 无需作另外的转换工作 。
完整的测试代码
完整的测试代码如下图所示:
运行结果如下图所示:
从运行结果可以看出 , 对于包含3个复数元素的数组a , 已经实现了其实部和虚部进行交换的目的 , 通过复数数组b进行了正确的输出 。 这种调用方法可以实现C语言复数数组与numpy复数数组之间数据正确的传递 。
总结
从这个例子中可以看出 , 在Python语言中 , 通过ctypes模块调用其它如C++语言编写的动态链接库DLL文件中的函数 , 在提高软件运行效率的同时 , 也可以充分利用目前市面上各种第三方的DLL库函数 , 以扩充Python软件的功能及应用领域 , 减少重复编写代码、重复造轮子的工作量 , 这也充分体现了Python语言作为一种胶水语言所特有的优势 。
推荐阅读
- |MT 正在让游戏本地化质量变得更差?
- 伊隆·马斯克|EDG夺冠翻译小姐姐火了!穿印花旗袍大秀中国美,三门语言切换超牛
- edg战队|EDG赛后美女翻译上热搜!精通4国语言为国争光,网红学霸颜值高!
- 传奇|美服传奇:克服了语言不通,还带着新手玩的风生水起!
- 梦幻西游|梦幻西游:找到了当年记录账号的笔记,因为它还被父母混合双打过
- 碧蓝航线|碧蓝航线8月19日改建更新总结 微层混合复刻开启 科研项系统优化
- 舰娘|碧蓝航线美服3周年直播新舰娘情报 微层混合复刻 疑似黑扶桑登场
- 我的世界|我的世界:世界上最难的语言是什么?MC玩家默默打开了附魔台
- 二次元|4年前谁能料到,这款二次元游戏能成为玩家的「共同语言」
- 斗鱼|疑似前斗鱼一姐10年前聊天记录曝光,语言太豪放,粉丝不敢信