From: utzoo!decvax!decwrl!sun!megatest!fortune!sri-unix!perry.gatech@Udel-Relay Newsgroups: net.unix-wizards Title: Re: if statement ambiguity and the C preprocessor Article-I.D.: sri-unix.3729 Posted: Sun Oct 10 00:56:39 1982 Received: Sun Oct 17 22:50:08 1982 From: Perry Flinn Date: 29 Sep 82 11:45:02-EDT (Wed) References: pyuxll.282, rabbit.764 The problem arises (for example) when you want to replace a function call with a macro but you don't want to trace down all existing invocations of that function to remove the terminating semicolon. Lets say you have the following: if (status != 0) dprintf("Error %d\n", status); else some_other_statement; Now if you replace the function dprintf with a macro: #define dprintf(a,b) { if (debug) printf(a, b); } this expands into: if (status != 0) { if (debug) printf("Error %d\n", status); }; else some_other_statement; which leaves you with an orphaned else.