可能重复:
在 char 数组中间插入字符
我需要在静态数组的 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]);
}
可能重复:
在 char 数组中间插入字符
我需要在静态数组的 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]);
}
您太担心低级优化 - 编译器会处理这个问题。
如果相信在这种情况下最明显的代码也是最快的:
a[3] = a[2];
a[2] = a[1];
a[1] = x;
你不能得到比这更简单的了。
以下是编译器在优化代码时可以执行的操作的示例:
https://stackoverflow.com/a/11639305/597607
(10 行源代码变成了 4-5 条机器指令——让编译器完成它的工作!)。