Discussion
Why is this macro dangerous?
#define SQ(x) x * x
Answer: A
Correct answer: without parentheses, SQ(a + b) expands wrongly
The expansion is a + b * a + b, which by precedence is a + (b*a) + b rather than the square of the sum. Every macro parameter and the whole macro body need parentheses. Note also that this macro evaluates its argument twice, which is a separate hazard.
No comment is present. Be the first to comment.
Loading…
Post your comment
Please log in or register to post a comment.
Examination Categories
- SSC Exams
- Banking Exams
- Teaching Exams
- Civil Services Exams
- Railways Exams
- Engineering Recruitment Exams
- Defence Exams
- State Government Exams
- Police Exams
- Insurance Exams
- Nursing Exams
- Other Government Exams
- NRA CET
- PG Entrance Exams
- Campus Placement
- MBA Entrance Exams
- CUET and UG Entrance
- Judiciary Exams
- Regulatory Body Exams
- Software Development