Newsgroups: comp.std.c
From: "Jun Woong" <mycob...@hanmail.net>
Date: Wed, 16 Jul 2003 10:59:20 +0900
Local: Tues, Jul 15 2003 9:59 pm
Subject: Re: Nested macro expansion
"Paul Mensonides" <leavi...@comcast.net> wrote in message news:dD%Qa.60207$sY2.28289@rwcrnsc51.ops.asp.att.net... Then, could you show me a more reliable non-normative reference like > Jun Woong wrote: > > Now, it's not clear that n(m) should be considered to be a recursive > The non-normative reference is incorrect. The behavior is specified, it just > #define A() B > A() // B the committee's answer to another DR or the committee minutes, not you own interpretation? Because what I cited were the authoritative interpretations which the committee formed for C90, and C99 still has the following non-normative wording (even if Doug said differently in the discussion cited in my previous posting, which was the reason I mentioned it), J.1 (Unspecified behavior) When a fully expanded macro replacement list contains a function- I need an interpretation which has an equivalent authoritative to > However, if the opening parethesis of the invocation *is* found during the a( According to the literal reading of the standard (and your > and therefore it is a recursive My understanding was that this is not different from your first > invocation attempt: > #define A() B( > A() ) () // A() example above, even if the committee mentioned nothing direct about this. The invocation is completed with tokens from the remaining source file, and in the Rationale (for both C90 and C99) the committee provides a rationale to leave it as unspecified: However, given the definitions #define f(a) a*g the expansion will to be either 2*f(9) or 2*9*g: there are no which can apply to your second example, too. -- You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
| ||||||||||||||
