-#define _TRIGGER_DEL(TARG) --TARG.num_funcs
-#define _TRIGGER_POP(TARG) (TARG.func[_TRIGGER_DEL(TARG)])()
-#define _TRIGGER_SET(TARG, FUNC) TARG.func[TARG.num_funcs++] = FUNC
-#define _TRIGGER(TARG) while(TARG.num_funcs) TRIGGER_POP(TARG)
+#define _TRIGGER_DEL(TARG) --((TARG).num_funcs)
+#define _TRIGGER_POP(TARG) ((TARG).func[_TRIGGER_DEL(TARG)])()
+#define _TRIGGER_SET(TARG, FUNC) (TARG).func[(TARG).num_funcs++] = (FUNC)
+#define _TRIGGER(TARG) while((TARG).num_funcs) TRIGGER_POP(TARG)