Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!mit-eddie!ll-xn!ames!ucbcad!ucbvax!decvax!minow From: minow@decvax.UUCP (Martin Minow) Newsgroups: comp.lang.c Subject: Re: ANS C Macro Processing Message-ID: <173@decvax.UUCP> Date: Wed, 21-Oct-87 23:29:52 EDT Article-I.D.: decvax.173 Posted: Wed Oct 21 23:29:52 1987 Date-Received: Sat, 24-Oct-87 13:41:58 EDT References: <167@sdti.UUCP> Reply-To: minow@decvax.UUCP (Martin Minow) Organization: Digital Eq. Corp. - Merrimack NH. Lines: 15 In article <167@sdti.UUCP> turner%sdti@harvard.harvard.edu (Prescott K. Turner, Jr.) notes that the Draft Ansi C Standard rules for macro rescanning are either vague, obscure, or both. I believe their intent can best be illustrated by an example: #if debug > 0 #define exit(status) (printf("Exit, status = %d\n", status), exit(status)) #endif If macros were rescanned, the evaluation would loop forever. Instead, the evaluation is expanded as a "normal" function. Hope this is clearer. Martin Minow decvax!minow