受硬件工艺制约,CPU访问外部内存的速度远远慢于寄存器以及片上内存,常常成为程序性能的最大瓶颈。而指针作为内存间接访问的索引,可实现内存共享机制,代替内存间的大数据搬运和拷贝。打个粗俗的比方,小孩在家里随地大小便,大人每次都要在后面处理,这时真希望他会蹲马桶啊!第一步一定是告诉并让他记住马桶在哪里,否则一旦既成事实,臭臭落地,就只能“拷贝搬运”了。所以,马桶的位置就是指针!
函数调用链上的多余中转内存导致的额外拷贝
一些C初学者一看到需要buffer存数据,不管三七二十一,立马先定义个数组放着,然后懵懵懂懂走一步看一步,这样最后就不可避免的导致多余内存拷贝,比如:
extern void tran(char *pin, char out[X_SIZE], int size);
void initParams(Params * param,char *pECC)
{

本文探讨了如何利用指针实现内存共享,减少不必要的数据拷贝,提高程序性能。通过函数参数传递指针,可以避免中间内存的使用,实现多模块和多进程间的高效通信。文中以嵌入式开发为例,阐述了在多任务系统中如何通过指针实现内存共享,以减少数据传输的开销,并提到了操作系统提供的内存共享接口。
最低0.47元/天 解锁文章
1180

被折叠的 条评论
为什么被折叠?



