定数
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(""); }