В C есть ли способ переустановить (т. Е. Больше выравнивания, чем можно вывести из системы типов) в стеке?Эквивалент std :: aligned_storage <> в C?
Для переменных в динамически распределенной памяти мы всегда можем выровнять вручную, если все остальное не удается, но что можно сделать для переменных в автоматически распределенной памяти?
Я предполагаю, что можно использовать char[size + alignment - 1]
, а затем всегда использовать манипуляции с битами для доступа к переменной, но это кажется «бит» более темным, чем необходимо (har har har;)).
Вы попробовали спецификатор _Alignas? – this
@that oops, я должен был упомянуть, нет C11, спасибо – Praxeolitic
Почему вы приняли другой ответ, если C11 не был вариантом? :-( – this