Есть ли способ выровнять указатель в C? Предположим, что я записываю данные в стек массива (поэтому указатель идет вниз), и я хочу, чтобы следующие данные, которые я пишу, были выровнены по четырем, поэтому данные записываются в ячейке памяти, которая кратно 4, как бы я сделал что?
У меня
uint8_t ary[1024];
ary = ary+1024;
ary -= /* ... */
Теперь предположим, что ary
указывает на местоположение 0x05
. Я хочу, чтобы он указывал на 0x04
.
Теперь я мог просто сделать
ary -= (ary % 4);
но C не допускает по модулю указателей. Есть ли какое-либо решение, независимое от архитектуры?