"/ * @ null @ * // * @ out @ * /" nella dichiarazione della funzione C

4

In alloc.h di djbdns-1.05 c'è il seguente codice:

extern /*@null@*//*@out@*/char *alloc();

La mia domanda riguarda il decoratore "dozzante" /*@null@*//*@out* . Presumo che questo sia "solo un commento" con un significato per il sistema di costruzione di djbdns. Ma non riesco a trovare nulla che faccia riferimento ad esso in altri file.

Qualcuno sa di cosa si tratta?

    
posta veryfoolish 02.01.2014 - 23:34
fonte

1 risposta

10

Sono quasi certamente annotazioni utilizzate da uno strumento di analisi del codice statico. Non so con certezza a quale strumento sono destinate queste annotazioni, ma potrebbe essere Splint , che utilizza la sintassi @foo@ . Il manuale Splint, Appendice C: Annotazioni elenca varie annotazioni che possono essere utilizzate.

Gli strumenti di analisi statici vengono utilizzati per verificare automaticamente alcune classi di errori di programmazione. Questo è simile al modo in cui i compilatori possono emettere avvisi su errori comuni o potenziali problemi nel codice, eccetto che gli strumenti di analisi statica in genere eseguono un'analisi del codice molto più ampia (e computazionalmente costosa). Le annotazioni nel codice vengono utilizzate per fornire allo strumento ulteriori informazioni sul comportamento del codice.

    
risposta data 02.01.2014 - 23:58
fonte

Leggi altre domande sui tag