Различаются ли C и C++ в отношении законности выравнивания указателей во время выполнения? ⇐ C++

Программы на C++. Форум разработчиков
Anonymous
Различаются ли C и C++ в отношении законности выравнивания указателей во время выполнения?

Сообщение Anonymous »

Предполагая, что выравнивание является степенью 2, поиск следующего правильно выровненного адреса можно выполнить с помощью этого выражения:

Код: Выделить всё

(address + alignment - 1u) & ~(alignment - 1u)
Это используется в пользовательских распределителях памяти.
Однако для выполнения этой операции адрес необходимо привести к uintptr_t( и char* не подойдут).
Различаются ли C и C++ в отношении законности использования такого выражения?

Подробнее здесь: https://stackoverflow.com/questions/791 ... at-runtime

Вернуться в «C++»