指针真得比数组快吗?函数调用会拖慢程序多少?++i 比i = i+1 快吗?
2014-06-10 11:08
253 查看
指针真得比数组快吗?函数调用会拖慢程序多少?++i 比i = i+1 快吗? 这些问题的精确回答, 跟你所用的处理器和编译器有关。如果你必须知道, 你就得小心的给程序计时。通常, 差别是很小的, 小到要经过千万次迭代才能看到不同。如果可能, 查看编译器的汇编输出, 看看这两种方法是否被编译的一样。
一般的机器, 通常遍历大的数组时, 用指针比用数组要快, 但是某些处理器就相反。
函数调用, 虽然明显比内联代码要慢, 但是它对程序的模块化和代码清晰度的贡献, 很少有好的理由来避免它。
在修整象i = i + 1 这样的代码前, 记住你是在跟编译器打交道, 而不是键击编程的计算器。对于++i, i += 1 和i = i + 1, 任何好的编译器都会生成完全一样的代码。使用任何一种形式只跟风格有关, 于效率无关。
一般的机器, 通常遍历大的数组时, 用指针比用数组要快, 但是某些处理器就相反。
函数调用, 虽然明显比内联代码要慢, 但是它对程序的模块化和代码清晰度的贡献, 很少有好的理由来避免它。
在修整象i = i + 1 这样的代码前, 记住你是在跟编译器打交道, 而不是键击编程的计算器。对于++i, i += 1 和i = i + 1, 任何好的编译器都会生成完全一样的代码。使用任何一种形式只跟风格有关, 于效率无关。
相关文章推荐
- 函数指针数组——学习——对函数的调用
- 函数与程序结构&数组与指针(C编程语言)
- 8.6函数调用与数组和指针的运用
- 成员函数指针数组,处理函数中调用:
- 修改程序清单7.7中的3个数组处理函数,使之使用两个指针参数来表示区间.
- 实验9 指针1 、程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依
- C++通过基类指针delete派生类数组,析构函数是虚函数,程序为什么会崩溃? https://www.zhihu.com/question/30838092/answer/49623765
- 复习C语言系列二:动态调用函数指针数组
- 结构体初始化及结构体指针.结构体数组.结构体函数的调用赋值等
- 关于函数字符数组调用的问题(没有搞清指针的概念)
- 实验9 指针1 1、程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依据。
- 拒绝switch,程序加速之函数指针数组
- 关于递归调用,函数指针,数组,字符串的一些理解
- []数组_函数调用数组 、指针数组、结构体数组
- 拒绝switch,程序加速之函数指针数组
- 【C/C++语言基础学习】在主函数的定义的指针数组、二维数组通过三级指针在被调用函数分配内存
- 合并并且排序指针数组和二维数组里面存放的字符串用函数调用的格式
- 复习C语言系列二:动态调用函数指针数组
- 实验九指针1、程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依据。
- C#调用参数为函数指针的API函数 - 以SetUnhandledExceptionFilter为例编写一个全局异常处理程序