-2

使用指针导航值数组更好,还是使用下标数组名称更好?

编译器如何处理这两种方法?

4

2 回答 2

4

任何现代编译器都应该为这两种方法生成等效的汇编代码。

于 2013-06-14T18:45:13.140 回答
1

我做了一个简短的测试。我创建int arr[10]并将所有单元格设置为10使用由索引索引的正常 for 循环int和一个使用int*.

对我来说奇怪的是(我接受 Midhun MP 参数)指针索引循环汇编代码比正常方法大(多 1 行)。但是当我打开O3优化输出时是完全一样的。

IMO 代码首先应该易于阅读和工作而不会出错。只有当你真的需要它们时,才能进行微优化。在其他情况下,可读性胜过性能。

如果你好奇它是如何工作的。自己做这个测试。准备 2 个版本的代码,编译它gcc -S并比较输出。

于 2013-06-14T19:06:48.693 回答