TI ricordo che in C (Ansi-C) il tipo bool non esiste. Il linguaggio considera "falso" il valore 0 e "vero" tutti i valori diversi da zero (inclusi i negativi). Sembra un dettaglio ma non lo e': La libreria standard definisce le macro TRUE e FALSE ma vano usate con attenzione, specie nel caso di confronti con TRUE.
Dipende dalla libreria C/C++ che vai a linkare. La versioni "debug" moderne ti fanno il favore di stampare "null" o "null string" se fai una cosa tipo questa:
come TRUE e FALSE, NULL e' in genere una macro del compilatore:Codice:char *string = NULL; printf ("La stringa vale: [%s]", string );
Quindi usare 0 o NULL non cambia nulla, eccetto che il codice e' piu' leggibile se usi NULL.Codice:#define NULL 0 // in C (Ansi) #define NULL ((void *)0) // in C++ (x98 - x10)
Da C++ x11 in poi e' stata introdotta la keyword nullptr che e un vero e proprio valore di tipo nullptr_t.
vero, ma per fortuna quei sistemi oramai sono solo (brutti) ricordi lontani.
Infatti quel codice non funzionava![]()