0

我有几个 UINT8_T 值,在这里我可能会感到困惑,但我可以将它们的值用作目标 C 中的条件语句吗?所以如果我有 00000001 那么 bool digitalOutput1 应该设置为 true 吗?

抱歉,如果不清楚...请随时要求澄清。

我如何遍历 UINT8_T 对象是这样的:

  uint8_t value = input.value; //This is a value from an outside source
  for(UISwitch *temp in switchArrayIn){
    temp.on = (value & 1)
    value >>= 1;
}

所以我向下移动每一位以检查每个值是 1 还是 0,如果它确实有 1 - 打开开关输出;如果没有 - 将其关闭。

基本上我要问的是我是否正在遍历一个 UINT8_T 变量/实例,该变量/实例具有分配给它的值,无论它可能是什么。与布尔值相比,我可以将其用作条件语句吗?IE;

 bool test = TRUE;
    uint8_t = 00000001;
   for(int i = 0; i<7; i++){
    if(test == (value & i)){
   // do something
}
4

1 回答 1

1

您可以在 C 中的布尔上下文中绝对使用任何标量。值 0(可由所有标量类型表示)被视为假,而任何其他值都被视为真。

于 2014-02-17T18:16:35.083 回答