Всем привет!
u32 func(char * array, u32 * A)
{
*A = 2;
return *A;
}
Иногда возникает такая проблема, если А не выравнена по слову, попадает смещенная величина.
Вот пример:
В самом начале:
____word___________wordA____
| 00 00 00 00 |____| 00 00 00 00 |
Должно получиться после присваивания:
____word___________wordA____
| 00 00 00 00 |____| 02 00 00 00 |
А получается так:
____word___________wordA____
| 00 00 00 02 |____| 00 00 00 00 |
Кто как борет это?
Компилятор GCC.