Connecting Tech Pros Worldwide Help | Site Map

Sequence points

 
LinkBack Thread Tools Search this Thread
  #1  
Old December 1st, 2005, 04:35 PM
Senthil
Guest
 
Posts: n/a
Default Sequence points

Hi,

When standard states this
"
i = v[i++]; // the behavior is undefined
i = ++i + 1; // the behavior is undefined
"

Do both of the following code snippets produces undefined behaviour or
the second one alone.

int m = 2;
int answer = ++m * ++m + ++m * ++m;

or

int m = 2
m = ++m * ++m + ++m * ++m;

What are the sequence points inside these expressions?

Thanks,
Senthil


  #2  
Old December 1st, 2005, 04:45 PM
Artie Gold
Guest
 
Posts: n/a
Default Re: Sequence points

Senthil wrote:[color=blue]
> Hi,
>
> When standard states this
> "
> i = v[i++]; // the behavior is undefined
> i = ++i + 1; // the behavior is undefined
> "
>
> Do both of the following code snippets produces undefined behaviour or
> the second one alone.
>
> int m = 2;
> int answer = ++m * ++m + ++m * ++m;
>
> or
>
> int m = 2
> m = ++m * ++m + ++m * ++m;
>
> What are the sequence points inside these expressions?
>
> Thanks,
> Senthil
>[/color]
They both produce UB, as there *are* no sequence points in either
expression.

HTH,
--ag

--
Artie Gold -- Austin, Texas
http://goldsays.blogspot.com (new post 8/5)
http://www.cafepress.com/goldsays
"If you have nothing to hide, you're not trying!"
  #3  
Old December 1st, 2005, 06:35 PM
Pete Becker
Guest
 
Posts: n/a
Default Re: Sequence points

Senthil wrote:[color=blue]
>
> What are the sequence points inside these expressions?
>[/color]

There aren't any. There is a sequence point at the end of each one. The
behavior of both statements is undefined, because they modify the value
of m more than once without an intervening sequence point.

--

Pete Becker
Dinkumware, Ltd. (http://www.dinkumware.com)
  #4  
Old December 2nd, 2005, 03:05 AM
Senthil
Guest
 
Posts: n/a
Default Re: Sequence points

Thanks Pete and Artie!!!

I read books and i read the standard..but i am still not able to
understand what a sequence point is ?
:(

Greetings,
Senthil

  #5  
Old December 2nd, 2005, 04:15 AM
Jack Klein
Guest
 
Posts: n/a
Default Re: Sequence points

On 1 Dec 2005 19:56:14 -0800, "Senthil" <s.senthilvel@gmail.com> wrote
in comp.lang.c++:
[color=blue]
> Thanks Pete and Artie!!!
>
> I read books and i read the standard..but i am still not able to
> understand what a sequence point is ?
> :(
>
> Greetings,
> Senthil[/color]

Sequence points:

1. The ';' at the end of a full expression.

2. The comma operator (but the commas that separate arguments in a
function call are NOT comma operators).

3. At the '?' in the ternary expression.

4. During a function call, after all the arguments are evaluated,
before the function begins executing.

5. When a function ends/returns or exits by throwing an exception.

6. At the evaluation of a && or || logical operator.

7. At the initialization of each base and member in a constructor
with an initialization list.

--
Jack Klein
Home: http://JK-Technology.Com
FAQs for
comp.lang.c http://www.eskimo.com/~scs/C-faq/top.html
comp.lang.c++ http://www.parashift.com/c++-faq-lite/
alt.comp.lang.learn.c-c++
http://www.contrib.andrew.cmu.edu/~a...FAQ-acllc.html
  #6  
Old December 2nd, 2005, 09:35 AM
Senthil
Guest
 
Posts: n/a
Default Re: Sequence points

Thanks a ton, Jack


-senthil

 

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Popular Articles

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over 220,840 network members.