troubleshooting Question

How is a circular #define resolved?

Avatar of riceman0
riceman0 asked on
5 Comments1 Solution492 ViewsLast Modified:
Can someone explain why the code below returns the error:

'SAM1': undeclared identifier

On the 'x=' line?

I would think that the first #define would be fine, then the second #define would be expanded to

#define SAM2 SAM2

which essentially has no effect, so I would expect the error to be

'SAM2': undeclared identifier

after the " int x = SAM1;" is expanded to  " int x = SAM2;

but apparently I misunderstand.  What does happen in this case?

#define SAM1 SAM2
#define SAM2 SAM1
int main()
       int x = SAM1;
	return 0;
Join our community to see this answer!
Unlock 1 Answer and 5 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 5 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros