Cで配列を初期化しようとしましたが、GCCはmov命令を生成しています(初期化する要素が多い場合は非効率的です)。このように初期化するのではなく、配列データを使ってメモリをロードし、そこからポインタを返す方法はありますか?Cでデータの配列/ブロックを効率的に初期化する
6:array.c **** int a[]={1,2,3,4,5,9};
26 .loc 1 6 0
27 0008 C745E001 movl $1, -32(%rbp)
27 000000
28 000f C745E402 movl $2, -28(%rbp)
28 000000
29 0016 C745E803 movl $3, -24(%rbp)
29 000000
30 001d C745EC04 movl $4, -20(%rbp)
30 000000
31 0024 C745F005 movl $5, -16(%rbp)
31 000000
32 002b C745F409 movl $9, -12(%rbp)
32 000000
最適化してコンパイルします。 – Kevin
配列をグローバルにしてみてください。 –
、私はアセンブリに慣れていませんが、実行時に初期化する必要があると仮定して、最適なアプローチは何ですか? – Bwmat