To clarify, is constdef is a kind of macro that must be evaluated when used and not evaluated when defined? For example, if you had: void main(){ 3*c1;} would the expression be required to evaluate to 5 or to 9?