Questo dovrebbe portare fino a velocità sull'utilizzo di affermare la funzione
void assert (int expression);
Valutare affermazione Se l'espressione argomento di questa macro con forma funzionale confronta uguale a zero (vale a dire, l'espressione è falsa), un messaggio viene scritto sul dispositivo di errore standard e viene chiamato abort, terminando l'esecuzione del programma.
Le specifiche del messaggio visualizzato dipendono dall'implementazione specifica nel compilatore, ma devono includere: l'espressione la cui asserzione non è riuscita, il nome del file di origine e il numero di riga in cui si è verificato. Un normale formato di espressione è:
Asserzione non riuscita: espressione, nome file file, numero riga Questa macro è disabilitata se al momento di includere assert.h è già stata definita una macro con nome NDEBUG. Questo permette un codificatore per includere molte chiamate asserzione in un codice sorgente durante il debugging del programma e quindi disattivare tutti per la versione di produzione semplicemente includendo una linea come:
#define NDEBUG at the beginning of its code, before the inclusion of assert.h.
Pertanto, questa macro è progettato per catturare errori di programmazione, non utenti o errori di esecuzione, poiché generalmente è disabilitato dopo che un programma ha terminato la sua fase di debug. da: C++ Ref
fonte
2012-10-31 07:10:27
Se qualcuno si è imbattuto in questo, ho avuto lo stesso errore. Ciò che ha chiarito il mio era che c'era un lucchetto chiuso a chiave, ma mai rilasciato. Non sono sicuro del motivo per cui non si è appena bloccato. Non so se questo ti sarà d'aiuto, ma ho pensato che avrei passato il mio trucchetto. – Homer6