Egy rakat probléma van a define-nal. Pl., itt van egy: #define square(x) ((x)*(x)) int x = 2; int s = square(x++); Itt az x kétszer lesz megnövelve.