🍭

定数について

定数


true / false

状態
true
1
false
0

HIGH / LOW

状態
HIGH
1
LOW
0

定義の仕方


#define

defineで定義された定数はコンパイル時にパソコン側のコンパイラが処理をして値へと置換されます。
#define LED_PIN 3 void loop(){ //LED_PINと書くと、3と同じ意味になる digitalWrite(LED_PIN, HIGH);//digitalWrite(3, HIGH); }

#defineを使ったプログラムの切り替え

  • #defineを使ってプログラムの切り替えができます。
  • 下にプログラムを示しました。

ENABLE_PRINTがdefineされている時

  • hello worldとシリアルモニタに出力されます。
#define ENABLE_PRINT void setup(){ Serial.begin(115200); } void loop(){ #ifdef ENABLE_PRINT Serial.print("hello "); #endif Serial.print("world"); Serial.print(""); }

ENABLE_PRINTがdefineされていない時

  • #define ENABLE_PRINTをコメントアウトしました
    • worldがシリアルモニタに出力されます。
    • helloが表示されません
//#define ENABLE_PRINT void setup(){ Serial.begin(115200); } void loop(){ #ifdef ENABLE_PRINT Serial.print("hello "); #endif Serial.print("world"); Serial.print(""); }
💡
#ifdefを用いてプログラムをビルドする部分を指定しています。
  • ENABLE_PRINTが定義されている場合、
  • #ifdef ENABLE_PRINTから#endifの間のプログラムはビルドされません

例1

  • #elseを使って分岐しています
  • ENABLE_PRINTが定義されている場合はhelloを出力
    • #define ENABLE_PRINT void setup(){ Serial.begin(115200); } void loop(){ #ifdef ENABLE_PRINT Serial.print("hello "); #else Serial.print("world"); #endif Serial.print(""); }
  • ENABLE_PRINTが定義されてない場合はworldを出力
    • //#define ENABLE_PRINT void setup(){ Serial.begin(115200); } void loop(){ #ifdef ENABLE_PRINT Serial.print("hello "); #else Serial.print("world"); #endif Serial.print(""); }