Как закодировать логическую переменную как 16-битное закодированное значение (расстояние Хэмминга) - PullRequest
0 голосов
/ 17 апреля 2019

как булевой переменной должно быть присвоено 16-битовое кодированное значение (например, код Хэмминга), чтобы избежать ложного состояния из-за переворачивания бита?

1 Ответ

0 голосов
/ 14 мая 2019

Логическое значение определено в файле platform_types.h. Это typedef как uint8 согласно стандарту.

[SWS_Platform_00027] standard Стандартный логический тип AUTOSAR должен быть реализован как целое число без знака с длиной в битах, которая является самой короткой изначально поддерживается платформой (в общем 8 бит).

Также в этом файле TRUE и FALSE определены как 0 и 1. Это также согласно стандарту [SWS_Platform_00056]

Если вы хотите выйти за рамки стандарта, вы можете изменить эти определения на коды Хэмминга. Но вы должны быть осторожны, как

  1. TRUE и FALSE могут быть определены и в других местах проекта.
  2. Некоторые реализации могут не использовать макросы TRUE и FALSE для присвоения значений логическим переменным. Они могут использовать магические числа 0 и 1. В этом случае у вас будут ошибки во время выполнения.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...