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