-
- Большинство приличных компиляторов документируют свои расширения и
их особенности. Вот что пишет IAR: LightElf(524 знак., 27.07.2020 00:03)
- А что будет при обмене "int *" и "packed int*"
указателями/ссылками? Они не совместимы вообще? Это, то что я имею
ввиду, когда говорю, мол сделать можно, но программисту
программировать будет невозможно. - fk0(27.07.2020 00:05)
- Так уже обсуждали. Конечно, если передавать __packed int* функциям типа scanf, на некоторых архитектурах могут быть сюрпризы. Имхо, корень зла тут не в атрибуте __packed, а в функции с ... в списке параметров. - йцyкeн(27.07.2020 13:11, ссылка)
- Будет диагностика "Warning[Pa039]: use of address of unaligned
structure member". Код будет нерабочий. Что, в общем-то, и
ожидается. - LightElf(27.07.2020 00:31)
- Код будет где-то рабочий а где-то нет. На AVR рабочий, на Cortex-M3
и ESP32 рабочий а на M0 и ESP8266 получим hard fault. И варнинг
тогда уж надо выдавать в зависимости от архитектуры процессора. - 3m(27.07.2020 07:16)
- Неа. IAR этот варнинг и на CM4 выдает. Этот код непортабелен и уже потому должен вызывать варнинг. Логика должна быть такая: "ты тут чего-то странное на$%евертил, я это как-то скомпилю, но не обижайся если что". . Другое дело, что "у меня все работает", потому что выровненность полей структуры достигается другими методами (о которых компилятор не знает). - LightElf(27.07.2020 14:48)
- Код будет где-то рабочий а где-то нет. На AVR рабочий, на Cortex-M3
и ESP32 рабочий а на M0 и ESP8266 получим hard fault. И варнинг
тогда уж надо выдавать в зависимости от архитектуры процессора. - 3m(27.07.2020 07:16)
- А что будет при обмене "int *" и "packed int*"
указателями/ссылками? Они не совместимы вообще? Это, то что я имею
ввиду, когда говорю, мол сделать можно, но программисту
программировать будет невозможно. - fk0(27.07.2020 00:05)
- Большинство приличных компиляторов документируют свои расширения и
их особенности. Вот что пишет IAR: LightElf(524 знак., 27.07.2020 00:03)