重複の可能性:
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 の機械語命令に変わりました。コンパイラに任せてください!)。