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