#include // Bad, no don't write macros like this: #define add( x, y ) x + y // Yes, Write them with parentheses: #define add2( x, y ) ( ( x ) + ( y ) ) int main( void ) { int num = 2 * add( 4, 6 ); /* num = 2 * 4 + 6 */ std::cout << "'2 * add( 4, 6 )' = " << num << '\n'; int num2 = 2 * add2( 4, 6 ); /* num2 = 2 * ( 4 + 6 )*/ std::cout << "'2 * add2( 4, 6 )' = " << num2 << '\n'; }