← Natrag

Makro

Define

Opasnosti

Makro se “copy-paste”-a u program.

#define POMNOZI(x, y) x * y // ovdje je greška

int main() {
  int a = POMNOZI(5, 2+1);

  // a ce biti 5 * 2+1 što nije 15 već 11!!
}

Bolji način:

#define POMNOZI(x, y) ((x) * (y)) // ovdje je dobro

int main() {
  int a = POMNOZI(5, 2+1);

  // a ce biti ((5) * (2+1)) što je 15
}

Vanjske zagrade su bitne ako će se vrijednost koristiti u kompleksnijem izrazu.