1 - сделать на асме.
2 - memcpy
3 - имхо самый изящный:
Да, содержимое массивов в Си не перебрасывается, но содержимое СТРУКТУР копируется при присваивании, да еще в полтора раза быстрее чем memcpy (по кр. мере в ИАР AVR и ARM).
//////////////
Поэтому первым делом одеваю массив в оболочку структуры...
typedef struct
{
int ai[5];
}array_of_int_5;// Организую две структуры в роли двух массивов.
//Одну из них инициализую.
array_of_int_5 a, b = { 1, 2, 3, 4, 5 };
//////////////////
main
{
b.ai[1] += 4;
a = b; // хееерак - и скопировали! 103 cycles
printf("%d\n",a.ai[1]); // Печатается 6
}//main
//////////////////
А вот способ копирования массивов как областей памяти через memcpy.
#include
int ia[5], ib[5]={ 1, 2, 3, 4, 5 };
main
{
ib[1] += 2;
memcpy(ia, ib, sizeof(ib) ); // 146 cycles
printf("%d\n",ia[1]); // Печатается 4
}