Ben Eater(youtuber)使用了我在任何地方都找不到的 arduino 表达式。它是什么?
Ben Eater (youtuber) used an arduino expression that I can't find anywhere. What is it?
在 youtuber Ben Eater 的视频 [“Hello, world” from scratch on a 6502 — Part 1] 中,他在视频的 10 分 30 秒处展示了一行代码,其中使用了我根本找不到的表达式.
我试过在arduino文档网站上找到它,试着直接搜索它,我也没有在Whosebug上找到它...这是代码:
const char ADDR[]={22, 24, 26...} // these are pins in the Arduino Mega
void setup() {
for (int n = 0; n < 16; n += 1) {
pinMode(ADDR[n], INPUT);
}
Serial.begin(57600);
}
void loop() {
for (int n = 0; n < 16; n +=1) {
int bit = digitalRead(ADDR[n]) ? 1 : 0;
Serial.print(bit);
}
Serial.println();
}
在代码行中 int bit = digitalRead(ADDR[n]) ? 1 : 0;
是我在其他任何地方都没有见过的表达式。它应该意味着 如果 digitalRead(ADDR[n]) 为真则添加 1 如果不添加 0 然后将其分配给整数变量位。 我还没有看到 ? True : False
表达式在其他任何地方,我想知道它的引用在哪里以及在哪里使用它以及类似的东西。我都不知道它叫什么!
谢谢您的回答!我仍在学习,我认为这些技巧会对我有很大帮助。
C++ 中的表达式由操作数和运算符组合而成。
可以在 C++ 参考中找到运算符的作用。
这是条件运算符或三元运算符。它基本上是一个简短的 if else.
(expression 1) ? expression 2 : expression 3
如果 expression 1
是 true
,则计算 expression 2
。如果 expression 1
是 false
,则计算 expression 3
。
int bit = digitalRead(ADDR[n]) ? 1 : 0;
将 1
分配给 bit
if digitalRead(ADDR[n])
returns HIGH
and 0
else.
这个表达式没有任何意义,因为 digitalRead
无论如何都会 return 1
或 0
。
int bit = digitalRead(ADDR[n]);
做同样的事情
他误认为 digitalRead return 是一个布尔值。它 return 是一个整数。
即使 digitalRead 会 return 布尔值,false 的计算结果为 0,true 的计算结果为 1,因此将其存储为整数绝对没有问题。它会隐式转换为整数,并且值不会改变。
在 youtuber Ben Eater 的视频 [“Hello, world” from scratch on a 6502 — Part 1] 中,他在视频的 10 分 30 秒处展示了一行代码,其中使用了我根本找不到的表达式.
我试过在arduino文档网站上找到它,试着直接搜索它,我也没有在Whosebug上找到它...这是代码:
const char ADDR[]={22, 24, 26...} // these are pins in the Arduino Mega
void setup() {
for (int n = 0; n < 16; n += 1) {
pinMode(ADDR[n], INPUT);
}
Serial.begin(57600);
}
void loop() {
for (int n = 0; n < 16; n +=1) {
int bit = digitalRead(ADDR[n]) ? 1 : 0;
Serial.print(bit);
}
Serial.println();
}
在代码行中 int bit = digitalRead(ADDR[n]) ? 1 : 0;
是我在其他任何地方都没有见过的表达式。它应该意味着 如果 digitalRead(ADDR[n]) 为真则添加 1 如果不添加 0 然后将其分配给整数变量位。 我还没有看到 ? True : False
表达式在其他任何地方,我想知道它的引用在哪里以及在哪里使用它以及类似的东西。我都不知道它叫什么!
谢谢您的回答!我仍在学习,我认为这些技巧会对我有很大帮助。
C++ 中的表达式由操作数和运算符组合而成。
可以在 C++ 参考中找到运算符的作用。
这是条件运算符或三元运算符。它基本上是一个简短的 if else.
(expression 1) ? expression 2 : expression 3
如果 expression 1
是 true
,则计算 expression 2
。如果 expression 1
是 false
,则计算 expression 3
。
int bit = digitalRead(ADDR[n]) ? 1 : 0;
将 1
分配给 bit
if digitalRead(ADDR[n])
returns HIGH
and 0
else.
这个表达式没有任何意义,因为 digitalRead
无论如何都会 return 1
或 0
。
int bit = digitalRead(ADDR[n]);
做同样的事情
他误认为 digitalRead return 是一个布尔值。它 return 是一个整数。
即使 digitalRead 会 return 布尔值,false 的计算结果为 0,true 的计算结果为 1,因此将其存储为整数绝对没有问题。它会隐式转换为整数,并且值不会改变。