c语言编程心得体会5篇
看了一本日本C语言的书,让我充满了疑惑!书中说指针用现在编译器编译,没什么高效率?
C语言指针依然是一个不可被替代的事物,也许指针和数组对于当代的编译器来说处理效率都差不多,但是多学习一点指针的知识总归是有好处的,对锻炼自己的抽象思维能力有好处的。
指针的处理最好封装为各种方法尽量过程可以切分为多个方法,这样效率随差但是排除bug会容易很多,这都是血和泪的经验啊。除非是接口或者优化的问题还是少用指针,毕竟稳定是第一位的
也许时代变了吧。
我还是认为指针的效率高。文中说的现代的编译器指针和数组的效率相差不大,这个说法比较模糊。1. 毕竟二者还是有差距,差距有多大没有明说;2. “现代的编译器”是指什么时候的编译器?而且不能保证所有的编译器都能缩小二者的差距(如果这种技术确实存在)。
因此,建议还是按传统的C语言编程宗旨,按指针的效率高来编程。
没什么不好理解的吧?图中的示例是一个数组,分别用下标和指针的方式来访问,仅就这一种情形而言,是完全可能的。
早期的编译器的代码优化功能不够强,这两种方式最终生成的二进制代码是不同的,自然就有性能上的差异。
而现在的编译器完全能识别出,这两种方式其实是同一种模式:以顺序方式访问一段连续的内存空间。这样最终生成的二进制代码,甚至可以是完全相同的,自然也就不存在性能差异了。
这个是目前优化原理普遍公认的事实,指针说到底没有类型,编译器很难理解,也就无法优化。
现在CPU的缓存比主内存快的多,用指针直接访问内存,不是好主意。
以前用指针主要是,函数调用和返回时只要拷贝指针本身。而不是拷贝指针指向的内容。现在编译器有很多办法避免内存拷贝。
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/22486.html