Ошибки, баги, вопросы - страница 2503
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ну какой-же баг?
вы объявляете массив мз двух элементов по два байта и получаете как и должно бвть 4 байта. Где баг? В чём?
А вот это
выравнивается по 4 и 2 элемента будут занимать 2*8 байт.
Извините, но если такое пишите, то тему не понимаете.
Аналог на крестах:
Ошибка наверное не здесь?
Извините, но если такое пишите, то тему не понимаете.
Да нет, похоже вы не понимаете.
Да нет, похоже вы не понимаете.
#pragma pack от мелкомягких очень своеобразная штучка (принцип его работы меня сейчас удивил честно говоря). Не удивительно, что попавший в стандарт alignas работает иначе.
Вот ещё:
#pragma pack от мелкомягких очень своеобразная штучка (принцип его работы меня сейчас удивил честно говоря). Не удивительно, что попавший в стандарт alignas работает иначе.
да хорош уже )
#pragma pack отлично пашет на gcc в том числе, а то что вы написали это как раз внутренний атрибут gcc, который работает не так, как работает aligned.
да хорош уже )
#pragma pack отлично пашет на gcc в том числе, а то что вы написали это как раз внутренний атрибут gcc, который работает не так, как работает aligned.
Ну и что этот пример показывает? Что вы не разобрались с использованием alignas? Даже компилятор на код ругается:
#pragma pack странная поделка мелкомягких, которые gcc поддерживает лишь для совместимости.
Ну и что этот пример показывает? Что вы не разобрались с использованием alignas?
согласен, затупил
вот правильный код
значит alignas не аналог упаковке.
потому что в том же gcc (чтобы без мелкомягких) кратность упаковки по умолчанию 8
потому что:
а вот с alignas(8)
Причем заметьте это дефолтное поведение, а не для совместимости с мелкомягкими
Не въехал в мысль. Всё отлично в примере, не вижу проблем. Дефолтно - выравнивание структуры == взять самое строгое требование-выравнивание среди членов.
struct {char;} == 1, struct {char; short} == 2, struct {char; int} == 4 и т.д.. Оно ведь так везде. А у long long == восемь, вот и alignas не имеет эффект.
Не въехал в мысль. Всё отлично в примере, не вижу проблем.
Да, вы правы, пример не показатель.
В итоге получается, что mql pack работает как #pragma pack а не как alignas.