vy ste schopný i autorov jazyka C prehovoriť že v ich jazyku je NULL to isté čo '\0' ... smutné, hlavne že oni sami píšu že to to isté nieje.
Fakt?
madcat@The-Raza ~/Devel/zzz # cat n.c
#include <stdio.h>
int main()
{
printf("Equals? %s\n", (NULL == '\0') ? "Yes" : "No");
return 0;
}
madcat@The-Raza ~/Devel/zzz # clang -Wall -Wextra -pedantic n.c -o n
madcat@The-Raza ~/Devel/zzz # ./n
Equals? Yes
No nic, mír s vámi...
Chtelo by to pouzit vyzralejsi prekladac a ne nejaky trapny pokus o nej 
$ gcc -Wall -Wextra -pedantic n.c -o n
n.c: In function ‘main’:
n.c:4:38: warning: comparison between pointer and zero character constant [-Wpointer-compare]
printf("Equals? %s\n", (NULL == '\0') ? "Yes" : "No");
^~
In file included from /usr/include/_G_config.h:15:0,
from /usr/include/libio.h:31,
from /usr/include/stdio.h:41,
from n.c:1:
n.c:4:33: note: did you mean to dereference the pointer?
printf("Equals? %s\n", (NULL == '\0') ? "Yes" : "No");
Clang - na rozdíl od GCC - zase správně varuje, že
return '\0' z funkce, která vrací
char * je potenciální chyba; GCC v tomto případě mlčí. To ale nemá žádný vliv na to, jak takový kód bude fungovat.
NULL a
'\0' se budou efektivně lišit jen tehdy, pokud bude
NULL definováno na něco jiného než
(void *)0, což jsem chtěl ukázat.