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