|

Makra w Arduino

Makra w Arduino to konstrukcje definiowane za pomocą dyrektywy preprocesora #define.

Za pomocą makra można zdefiniować fragment kodu lub funkcji, który zostanie podmieniony w kodzie podczas kompilacji.

Makro jako stała

#define LED_PIN 13
//const int LED_PIN = 13;

void setup() {
  pinMode(LED_PIN, OUTPUT);
  digitalWrite(LED_PIN, HIGH);
}

void loop() {

}

Makro jako funkcja (z parametrem)

#define CIRCLE_AREA(r) (pow(r,2)*3.14) //(r*r*3.14)

void setup() {
  Serial.begin(9600);
  int r = 5;
  Serial.println(CIRCLE_AREA(r));  // Zostanie wstawione (a*a*3.14)
}

void loop() {
}

Uwaga!

Ponieważ makra nie są funkcjami, błędy w ich definicjach są trudniejsze do wykrycia.

Makra nie sprawdzają typów swoich argumentów, co może prowadzić do nieoczekiwanych błędów.

Zdefiniowane makra muszą być unikalne, inaczej mogą powodować błędy w kodzie, np:

#define LED_BUILTIN 13

void setup() {
  const int LED_BUILTIN = 100;
  Serial.begin(9600);
  Serial.println(LED_BUILTIN);
}

void loop() {
}

Podobne wpisy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *