0

可能重复:
在 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]);
}
4

1 回答 1

1

您太担心低级优化 - 编译器会处理这个问题。

如果相信在这种情况下最明显的代码也是最快的:

a[3] = a[2];
a[2] = a[1];
a[1] = x;

你不能得到比这更简单的了。


以下是编译器在优化代码时可以执行的操作的示例:

https://stackoverflow.com/a/11639305/597607

(10 行源代码变成了 4-5 条机器指令——让编译器完成它的工作!)。

于 2013-01-23T22:46:00.280 回答