Пренасям проект msvc, който има няколко библиотеки и всяка библиотека има специфично подравняване на членове на структури. Използването на подравняване по подразбиране причини много фатални проблеми с неправилното подравняване и Google ми каза, че мога да разреша този проблем, като задам подравняване за всяка структура / клас / обединение ръчно с флага __attribute__ ((aligned (MY_ALIGN)))
, но има едно нещо, което ме притеснява:
Да кажем за простота, че проект A използва подравняване от 1 байт, а проект B, който активно използва функционалността на проект A и включва много от своите заглавки, има подравняване от 16 байта. Ще има ли проблем с това, или мисля твърде много и просто ще работи? Имам лошото предчувствие, че когато изграждам библиотека, компилаторът msvc задава подравняване за всяка структура във всички заглавки (без значение дали са включени в проект или са посочени от източници). Това истина ли е? И ако е така, моля, кажете ми как трябва да настроя подравняването да емулира настройката за подравняване на член на структурата на MSVC?