Re: Is cast operator unary or binary? How many operands?
- From: JoseMariaSola <JoseMariaSola@xxxxxxxxx>
- Date: Tue, 29 Apr 2008 10:04:11 -0700 (PDT)
On Apr 29, 1:47 pm, JoseMariaSola <JoseMariaS...@xxxxxxxxx> wrote:
I'd say one operator, the cast operator, and two operands: typename
and expression.
But everywhere I read, cast is categorized as an unary operator. Why
is that? Is it just a syntax cotegory?
(typename)(expression) has one operator `(typename)' and one operand
`(expression)'.
The reason the type is enclosed in parentheses (as a design decision)
is probably to avoid ambiguity, consider this:
int i = 1; /* define and initialize i to 1 */
{
int i; /* cast i to int, a statement with no effect, or define i in
block scope? */
}
Thanks, Vipps.
According to your answeer, the operator '(typename)' is very
particular, because it not a single token but three AND the middle
token is anything an identifier may be.
JM.
The last line of my last post shoudl be:
... the middle token is anything an identifier may be and more.
Here is part of the grammar:
unary-expression:
postfix-expression
++ unary-expression
-- unary-expression
unary-operator cast-expression
sizeof unary-expression
sizeof ( type-name )
unary-operator: one of
& * + - ˜ !
cast-expression:
unary-expression
( type-name ) cast-expression
Why sizeof, (type-name), ++ and -- aren't unary-operators?
Thanks.
.
- Follow-Ups:
- Re: Is cast operator unary or binary? How many operands?
- From: Richard Tobin
- Re: Is cast operator unary or binary? How many operands?
- References:
- Is cast operator unary or binary? How many operands?
- From: JoseMariaSola
- Re: Is cast operator unary or binary? How many operands?
- From: vippstar
- Re: Is cast operator unary or binary? How many operands?
- From: JoseMariaSola
- Is cast operator unary or binary? How many operands?
- Prev by Date: Re: K&R2 , exercise 7.6
- Next by Date: Re: C is best
- Previous by thread: Re: Is cast operator unary or binary? How many operands?
- Next by thread: Re: Is cast operator unary or binary? How many operands?
- Index(es):
Relevant Pages
|
|