In C, c'è un modo per ottenere un allineamento troppo allineato (cioè più allineamento di quello che si può dedurre dal sistema di tipi) nello stack?Equivalente di std :: aligned_storage <> in C?
Per le variabili nella memoria allocata dinamicamente, è sempre possibile eseguire l'allineamento manuale se tutto il resto fallisce, ma cosa può essere fatto per le variabili nella memoria allocata automaticamente?
Suppongo che sia possibile utilizzare uno char[size + alignment - 1]
e quindi utilizzare sempre la manipolazione dei bit per accedere alla variabile ma questo sembra un "bit" più ombreggiato del necessario (har har har;)).
Hai provato l'identificatore di _Alignas? – this
@this oops, avrei dovuto dire, senza C11, grazie – Praxeolitic
Perché hai accettato l'altra risposta se C11 non era un'opzione? :-( – this