Use of null statement in C

What are typical uses of null statement

;

in C ?

I know that it is basically used to skip expression where it is expected by the compiler, but here I'm interested only in real-world examples of such use cases.


Solution 1:

It's typically the side-effect of a code block that was stripped by the preprocessor, like

#if DEBUG
    #define ASSERT(_x) Assert(_x)
#else
    #define ASSERT(_x)
#endif


ASSERT(test);    // Results in null statement in non-debug builds

That, or in loops where your condition already contains whatever needs to be done in each iteration.

Solution 2:

while (*(dst++) = *(src++))
    ;

Solution 3:

After a label at the end of a function (or more precisely, at the end of any block), e.g.

void foo(void)
{
    // ...

exit:
    ;
}