Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Intermediate
Feb 20, 2001

Avoid This Common ASSERT(...) Mistake


ASSERT is a very helpful macro for debugging, because it helps root out false assumptions. However, many programmers make the mistake of putting actual assignments inside the macro. Consider the following:
 
a = GetA();
ASSERT(a != NULL);

It is tempting to collapse this code into a single line:
 
ASSERT((a = GetA()) != NULL);

This will only work in testing a DEBUG build of your code. When building release code, the ASSERT macro compiles to nothing, so the assignment:
 
a = GetA();

never happens, and can cause crashes.
Kevin Hsu
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date