Как управлять выравниванием памяти и универсальной арифметикой указателей в портативном виде в C?

Я должен реализовать оптимизированную версию malloc / realloc / free (специально для моего приложения). На данный момент код выполняется на конкретной платформе, но я хотел бы написать его переносимым способом, если это возможно (платформа может измениться в будущем), или, по крайней мере, я бы хотел сконцентрировать возможные различия платформы в одной точка (вероятно, .h). Я знаю о некоторых проблемах:

различия в выравнивании памятиразличия в наименьшем размере блоков памяти, подходящих для «общего» выделенияразличия в размере указателя

(Я проигнорирую различия в базовых системных службах для выделения памяти здесь, поскольку в некоторых встроенных системах они могут быть вообще недоступны. Давайте представим, что мы работаем над большим предварительно выделенным блоком памяти, который будет использоваться в качестве «кучи»).

Вопросы):

Существуют ли стандартные макросы или функции в C для такого рода целей?С какими еще проблемами я могу столкнуться в этой работе?

Ответы на вопрос(6)

Ваш ответ на вопрос