数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 299|回复: 15

感觉这种编程模式,可读性很差,MATRIX 里定义了一个 char ** 类型指针....

[复制链接]
发表于 2025-8-7 16:19:04 | 显示全部楼层 |阅读模式
MATRIX 里定义了一个 char ** 类型指针,然后大量使用 强制类型转换,云里雾里。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
发表于 2025-8-7 16:34:53 | 显示全部楼层
低级语言是这样的,熟能成巧。
回复 支持 反对

使用道具 举报

发表于 2025-8-7 16:47:44 | 显示全部楼层
这是为了适配MATRIX中包含不同的数据类型(short\float\double)数据,增强通用性,程序编写上做了一定的抽象。最终效果类似于C++中的模板。

因为C语言没有模板特性,所以权宜之计,用了程序中这样的变通写法,导致可读性变差。
回复 支持 反对

使用道具 举报

发表于 2025-8-7 16:51:46 | 显示全部楼层
就是二维数组,做成二重指针的形式,其实很好用(简洁,方便用,形式多样)
但是阅读者就麻烦了。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-8-7 17:34:12 | 显示全部楼层
wangbeng 发表于 2025-8-7 16:47
这是为了适配MATRIX中包含不同的数据类型(short\float\double)数据,增强通用性,程序编写上做了一定的抽 ...

多谢!
请教:对于每个 MATRIX 类型变量,理论上是不是都必须 显式释放内存?
源代码中有个别变量,没有显式释放内存。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-8-7 17:35:35 | 显示全部楼层
ba21 发表于 2025-8-7 16:34
低级语言是这样的,熟能成巧。

多谢!我正在努力读懂原始逻辑。
回复 支持 反对

使用道具 举报

发表于 2025-8-7 18:39:25 | 显示全部楼层
bh4qix 发表于 2025-8-7 17:35
多谢!我正在努力读懂原始逻辑。

回复 支持 反对

使用道具 举报

发表于 2025-8-7 20:34:23 | 显示全部楼层
bh4qix 发表于 2025-8-7 17:34
多谢!
请教:对于每个 MATRIX 类型变量,理论上是不是都必须 显式释放内存?
源代码中有个别变量,没有 ...

要看具体情况。
如果MATRIX变量中的**ptr只是指向现存的一片内存,这片内存还有其他用处,那么就不需要释放这一片内存。
如果是新建MATRIX变量后,手工分配一片内存给ptr,那么应该需要显式释放掉。

一般原则就是;谁分配的内存谁负责
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-8-7 21:25:39 | 显示全部楼层
wangbeng 发表于 2025-8-7 20:34
要看具体情况。
如果MATRIX变量中的**ptr只是指向现存的一片内存,这片内存还有其他用处,那么就不需要释 ...

非常感谢!
回复 支持 反对

使用道具 举报

发表于 2025-8-7 22:54:01 | 显示全部楼层
这是trubo c吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-8-8 09:11:00 | 显示全部楼层

界面是 DOS 6.22 Edit,
编译器确实是 Turbo C 2.0, 没有上图;
编译命令为 tcc -mc *.c
回复 支持 反对

使用道具 举报

发表于 2025-8-11 17:20:56 | 显示全部楼层
这个我觉得挺清晰的啊,处理一个矩阵类型,要适配矩阵里存的数据
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-8-11 19:19:50 | 显示全部楼层
eric_yangsen 发表于 2025-8-11 17:20
这个我觉得挺清晰的啊,处理一个矩阵类型,要适配矩阵里存的数据

有没有其它更简洁的方法?谢谢!
回复 支持 反对

使用道具 举报

发表于 2025-8-11 21:04:59 | 显示全部楼层
bh4qix 发表于 2025-8-11 19:19
有没有其它更简洁的方法?谢谢!

正因为没法简洁了,实际中又有广泛需求,所以才有了C++,引入了泛型编程,通过参数化类型实现代码复用的程序设计范式,使得算法和数据结构能够在不损失效率的前提下适用于多种数据类型。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-8-12 08:21:42 | 显示全部楼层
wangbeng 发表于 2025-8-11 21:04
正因为没法简洁了,实际中又有广泛需求,所以才有了C++,引入了泛型编程,通过参数化类型实现代码复用的 ...

多谢指点!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-9-22 04:20 , Processed in 0.140400 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表