Code:
void DebugPrint( const char* kpFormatString, ... );
#define PRINT(... ) { DebugPrint( __VA_ARGS__ ); }

if( rc < 0 )
{
	PRINT( "blah blah 0x%x\n", rc );
}
else
{
	PRINT("glub glub\n");
}
Why do I need {} around my PRINT calls? If I don't place them there, I get:

Code:
error: expected primary-expression before 'else'
I don't understand why it's trying to read in parameters past the delimited area.

This is using VS2005.