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

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

Сообщение Anonymous »

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

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

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

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

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