NUL undeclared- first use in this function

c nul
Tinyspark picture Tinyspark · May 11, 2012 · Viewed 16.9k times · Source

From the web I understand that C contains NUL keyword.

But while compiling I get an error

NUL undeclared first use in this function'

My code fragment:

for (;;) {
        char ch = (*pzDest = *pzSrc);
        if (ch == NUL)
            break;
        if (ch == ':') {
            *pzDest = NUL;
            break;
        }
        pzDest++;
        pzSrc++;
    }

Any idea why I get this error?

Answer

CrimsonDiego picture CrimsonDiego · May 11, 2012

There's NULL and then there's NUL.

NULL is defined in stddef.h, is used very widely, and is a reference to a null pointer.

NUL is different - it is the first character in the standard ASCII character set, and more importantly, it is not a standard macro. You may have to define it yourself.

To define NUL, do:

#define NUL '\0'