標準の“ bool iv id =の代わりに特別なArduino “ boolean ”データ型を使用する”11d7c70099″> データ型

" boolean "。

標準のC ++データ型" bool "、どちらを使用する理由は何ですか?

使用法が同じである場合、両方が存在するのはなぜですか。Arduinoコードではどちらが優先されますか?

コメント

  • これは基本的なプログラミングの質問であり、Arduinoに固有のものではありません。 最も信頼のおけるC ++ブックガイドとリスト。または Google
  • Arduino StackExchangeへようこそ。このサイトを最大限に活用するには、 arduino.stackexchange.com/Tour でツアーに参加してください。ブールは、true / falseのようにバイナリを意味します。 " Arduinoデータ型"でGoogle検索を実行して、それについて調べてください。
  • これがArduino固有の質問ではありません。 booleanは、Arduinoコアライブラリに設定されているboolの非標準タイプエイリアスであるため、Arduino固有のものです。詳細については、私の回答を参照してください。
  • 名前を変更しても、'はArduinoに固有のものではありません。

回答

他の回答は一般的に有用な情報を提供しますが、著者は質問をあまり注意深く読んでいないようです。 boolean ivではなく、 bool タイプについて話しているからです。 id = “435a4b860f”>

タイプ。 Arduino APIでは、booleanは、Arduino.hで定義されているboolのタイプエイリアスです。

https://github.com/arduino/Arduino/blob/1.8.3/hardware/arduino/avr/cores/arduino/Arduino.h#L125

typedef bool boolean; 

booleanタイプはboolと同じように入力し、標準のC ++プログラミングリファレンスで。このため、誤ってboolを参照している他の回答はまだある程度有用です。

明らかに、過去のある時点で、Arduinoの人々は

は、boolよりも初心者にやさしく、おそらく処理言語と一貫性があります

a>。ただし、ここで説明するように:

https://github.com/arduino/Arduino/issues/4673

不要非標準タイプを使用すると、コードの移植性が低下し、boolに比べて明確な利点が得られないため、一部の人は不適切な決定と見なしています。 Arduinoリファレンスのすべての公式Arduinoコードとドキュメントboolからbooleanの使用を削除する作業で、正式に非推奨にすることを望む人もいますboolean。したがって、コードでbooleanの代わりにboolを使用することをお勧めします。

回答

ブール変数タイプは、可能な値が2つしかないものですtrueまたはfalse。内部的には、int(16ビット整数)またはuint8_tタイプ(8ビット整数)。

「val」を割り当てることができます。代入演算子を使用したtrueまたはfalseのues “:

bool foo; foo = true; if (foo) { do_something(); } 

内部的には、true1であり、false

であり、数値は同じように置き換えることができます。

ArduinoとC ++のブール型は、ほとんどが読みやすさのために存在し、int型よりも特定の効率のためには存在しません。

回答

公式リファレンスはこちら

にあります。常にtrueとfalseを使用し、数字は使用しないでください。

以下にいくつかの例を示します

ブール値にfalseresp trueを割り当てます:

bool a = true; bool b = false; 

ブール値を確認します:

if (b) { // Executed when b is true } else { // Executed when b is false } if (a && b) { // Executed when a is true and b is true } if (a || b) { // Executed when a is true or b is true } 

bがfalseの場合、aはfalseになり、そうでない場合、aはそのままになります

a &= b; 

bがtrueの場合、aはtrueになり、それ以外の場合、aはそのままになります

a |= b; 

// aがtrueの場合、falseになり、その逆も同様です。

a = !a; 

コメント

  • 最後のものはa =!a shouldn 'である必要がありますか? 〜はビット単位ではありません。trueの定義方法によっては、〜trueがまだtrueである場合があります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です