Makrot muodostavat oikeastaan kokonaan oman virheryhmänsä. Niin paljon kuin ne auttavatkin kirjoittamista, saattavat ne tosi paljon myös sotkea ohjelmaa.
#define b 10*10 ... :-( a = 5.0/b; /* - > a==5.0 !!!! */
Erityisesti runsas sulkujen käyttö auttaa välttämään ongelmia. Käytännössä C++-koodissa on parasta välttää #definen käyttöä!