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.
Charlie has over a decade of experience in website administration and technology management. As the site admin, he oversees all technical aspects of running a high-traffic online platform, ensuring optimal performance, security, and user experience.
























