Ciao . . . A intuizione è un istruzione simile alla macro assert (documentati sul funzionamento di quest ultima) . . . In pratica se NO_ASSERTD è definito, viene ridefinita la macro assertd in modo che non faccia niente (istruzione (void)NULL ) . . . E' importante capire che (void)NULL è necessaria affinchè un istruzione tipo :
Venga espansa in :codice:assertd(i==0);
Nota che se assertd fosse ridefinita così:codice:(void)NULL;
L' istruzionecodice:#define assertd(exp)
uerrebbe espansa in:codice:assertd(i==0);
Il che è un errore . . .codice:;