Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: Notesfiles $Revision: 1.6.2.14 $; site umn-cs.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!ihnp4!stolaf!umn-cs!herndon From: herndon@umn-cs.UUCP Newsgroups: net.lang.c Subject: ANSI C Question Message-ID: <1700002@umn-cs.UUCP> Date: Fri, 8-Mar-85 14:44:00 EST Article-I.D.: umn-cs.1700002 Posted: Fri Mar 8 14:44:00 1985 Date-Received: Wed, 13-Mar-85 01:11:56 EST Lines: 20 Nf-ID: #N:umn-cs:1700002:000:724 Nf-From: umn-cs!herndon Mar 8 13:44:00 1985 If the ANSI standard allows spaces between the name of macro and the parenthesis introducing the parameter list, how is the pre-processor supposed to disinguish between: #define NULLMACRO (x, y, z) /* 3 param macro expands to nothing at all */ and #define XYZMACRO (x, y, z) /* 0 param macro expands to "(x, y, z)" */ Maybe quote interpretation rules will come into play, but these don't exist now, and will probably break many existing programs. What does the standard claim, or has it ignored this? This "no spaces between macro name and parenthesis introducing parameter list" restriction also occurs in the 'm4' macro processor, I suspect for good reason. Robert Herndon ...!ihnp4!umn-cs!herndon