c语言函数返回指针的指针变量,C语言的函数在什么场景下需要返回一个指针?...

本文探讨了如何在C语言中运用面向对象编程思想,并通过OpenGL等开放框架为例,介绍了使用指针进行优雅内存管理和对象操作的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言一样可以用面向对象的思想编程,尽管语法没那么优雅,但只要符合一定的规范编程,一样可以做到优雅的内存管理。

等等,我真的没跑题,请读下去。

很多开放框架就是面向对象思想设计的C接口,例如OpenGL,这样的设计里返回指针非常常见,形式看起来是这样的:

void* NewObject(); //创建对象

void DestroyObject(void* object); //销毁对象

void DoSomething(void* object, int arg); //方法

如果要允许用户有更优雅的内存管理,还可以加入引用计数:

void* NewObject(); //创建对象,引用计数=1

void Retain(void* object); //引用计数++

void Release(void* object); //引用计数--,如果等于0则销毁对象

void DoSomething(void* object, int arg); //方法

OpenGL就是这样设计的,所以返回指针未必是愚蠢的做法,相反,有时候是非常高大上的设计。

那为什么这样的代码不用C++啊?因为C的兼容性和性能都无与伦比啊!但这不会意味着我们不需要面向对象,面向对象依然是大型项目非常重要的设计基础,所以大家都应该学学这种C语言的设计模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值