1

如何为布尔变量分配 16 位编码值(例如,汉明码)以避免由于位翻转导致的错误状态?

4

1 回答 1

-1

布尔值在platform_types.h文件中定义。根据标准,它是 typedef uint8

[SWS_Platform_00027] ⌈标准 AUTOSAR 类型布尔值应实现为无符号整数,其位长是平台本机支持的最短位长(通常为 8 位)。

同样在这个文件中TRUEFALSE被定义为01。这也符合标准[SWS_Platform_00056]

如果您愿意超出标准,您可以将这些定义更改为汉明码。但是你需要小心

  1. TRUE并且FALSE也可以在项目的其他地方定义。
  2. 一些实现可能不使用宏TRUE并将FALSE值分配给布尔变量。他们可能使用 0 和 1 的幻数,在这种情况下,您将在运行时出错。
于 2019-05-14T03:24:19.330 回答