Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Macros

Posted on 2000-04-11
4
Medium Priority
?
254 Views
Last Modified: 2010-04-15
why does the macro increment or decrement twice before it evalutes,when we pass a increment or decrement operator as a parameter?
eg:#define macro(a) (a)*(a)

in the main function
   macro(++a);
0
Comment
Question by:Ramprasad_Inala
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
4 Comments
 
LVL 10

Accepted Solution

by:
rbr earned 0 total points
ID: 2703569
A macro is just the source replacement


macro (++a) produces the source

(++a)*(++a) so a will be inremented twice.


0
 
LVL 10

Expert Comment

by:rbr
ID: 2703578
And pls read
http://www.eskimo.com/~scs/C-faq/q3.2.html

This code is not well defined and can produce any result.
0
 
LVL 10

Expert Comment

by:rbr
ID: 2703587
An pls give a comment to your other question
http://www.experts-exchange.com/jsp/qShow.jsp?ta=cprog&qid=10326206 
0
 
LVL 84

Expert Comment

by:ozo
ID: 2706292
You can't depend on a being incrementyed twice, because an object shall be modified at most once between sequence points.
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Windows programmers of the C/C++ variety, how many of you realise that since Window 9x Microsoft has been lying to you about what constitutes Unicode (http://en.wikipedia.org/wiki/Unicode)? They will have you believe that Unicode requires you to use…
This is a short and sweet, but (hopefully) to the point article. There seems to be some fundamental misunderstanding about the function prototype for the "main" function in C and C++, more specifically what type this function should return. I see so…
Video by: Grant
The goal of this video is to provide viewers with basic examples to understand and use for-loops in the C programming language.
The goal of this video is to provide viewers with basic examples to understand opening and reading files in the C programming language.

604 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question