我需要在静态数组中的2个元素之间插入元素。我写了以下代码。如果我们的代码比这更有效,请告诉我。
int main()
{
int a[4];
a[0] = 10;
a[1] = 20;
a[2] = 30;
int x = 15;
memcpy(a+2,a+1,2);
a[1] = x;
printf("%d",a[2]);
}
答案 0 :(得分:1)
您对低级别优化过于担心 - 编译器负责这一点。
如果相信最明显的代码在这种情况下也是最快的:
a[3] = a[2];
a[2] = a[1];
a[1] = x;
你不能比这简单。
以下是编译器在优化代码时可以执行的操作的示例:
https://stackoverflow.com/a/11639305/597607
(10行源代码变成4-5机器指令 - 让编译器完成它的工作!)。