"big ugly, hard to maintain or read macros that generate arbitrary machine code. No matter how good you are, you won't know what code is being generated without extensive analysis." Why can't you just look at the preprocessor output? This isn't that big of a deal. Or use an IDE like Understand, which will expand macros for you.