unifdef - Online nel cloud

Questo è il comando unifdef che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


unifdef, unifdefall — rimuovere i condizionali del preprocessore dal codice

SINOSSI


unifdef [-bcdehKkmnsStV] [-Isentiero] [-[IDsym[=val,-[i]Usym] ... [-f profanare] [-x {012}]
[-M backext] [-o file di uscita] [infilare ...]
unifdefall [-Isentiero] ... filetto

DESCRIZIONE


Le unifdef l'utilità elabora selettivamente il condizionale cpp(1) direttive. Rimuove da a
archiviare sia le direttive che qualsiasi testo aggiuntivo che specificano dovrebbe essere rimosso, mentre
altrimenti lasciando il file da solo.

Le unifdef l'utilità agisce su #Se, #ifdef, #ifndef, #elif, #else e #endif linee, usando
macro specificate in -D e a -U opzioni della riga di comando o in -f file delle definizioni. Una direttiva
viene elaborato se le macrospecifiche sono sufficienti a fornire un valore definito per la sua
espressione di controllo. Se il risultato è falso, la direttiva e le seguenti righe sotto la sua
controllo vengono rimossi. Se il risultato è vero, viene rimossa solo la direttiva. Un #ifdef or
#ifndef La direttiva viene passata invariata se la sua macro di controllo non è specificata.
Qualsiasi #Se or #elif espressione di controllo che ha un valore sconosciuto o che unifdef non è possibile analizzare
viene attraversato invariato. Per impostazione predefinita, unifdef ignora #Se e a #elif linee con costante
espressioni; può essere detto di elaborarli specificando il -k flag sulla riga di comando.

Comprende un sottoinsieme comunemente usato della sintassi dell'espressione per #Se e a #elif Linee:
costanti intere, valori interi delle macro definite sulla riga di comando, il definito()
operatore, gli operatori !, <, >, <=, >=, ==, !=, &&, ||ed espressioni tra parentesi. UN
tipo di valutazione “cortocircuito” viene utilizzato per il && operatore: se uno degli operandi è
decisamente falso allora il risultato è falso, anche se il valore dell'altro operando è
sconosciuto. Allo stesso modo, se uno degli operandi di || è sicuramente vero allora il risultato è vero.

Quando si valuta un'espressione, unifdef non espande prima le macro. Il valore di una macro
deve essere un numero semplice, non un'espressione. È consentita una forma limitata di indiretto, dove
il valore di una macro è il nome di un'altra.

Nella maggior parte dei casi, unifdef non distingue tra macro di tipo oggetto (senza argomenti)
e macro di tipo funzione (con argomenti). Una chiamata macro simile a una funzione può apparire in
#Se e a #elif espressioni di controllo Se la macro non è definita esplicitamente o è definita
con la -D flag sulla riga di comando, o con #define in un -f file delle definizioni, è
gli argomenti vengono ignorati. Se una macro è esplicitamente indefinita sulla riga di comando con -U
bandiera, o con #indif in un -f file delle definizioni, potrebbe non avere argomenti poiché questo
porta a un errore di sintassi.

Le unifdef utility capisce quel tanto che basta di C per sapere quando una delle direttive è
inattivo perché è all'interno di un commento o è interessato da una riga continua con barra rovesciata. Esso
individua le direttive del preprocessore con formattazione insolita e sa quando il layout è troppo strano per
è da gestire.

Uno script chiamato unifdefall può essere usato per rimuovere tutti i condizionali cpp(1) direttive da a
file. Utilizza unifdef -s e a cpp -dM per ottenere elenchi di tutte le macro di controllo e delle relative
definizioni (o la loro mancanza), quindi invoca unifdef con argomenti appropriati per elaborare
il file.

VERSIONI


-Dsym=val
Specificare che una macro è definita su un dato valore.

-Dsym Specificare che una macro è definita al valore 1.

-Usym Specificare che una macro non è definita.

Se la stessa macro appare in più di un argomento, l'ultima occorrenza domina.

-IDsym[=val]
-iUsym Le stringhe C, i commenti e le continuazioni di riga vengono ignorate all'interno #ifdef e a #ifndef
blocchi controllati da macro specificate con queste opzioni.

-f profanare
Il file profanare contiene #define e a #indif direttive del preprocessore, che hanno
stesso effetto del corrispondente -D e a -U argomenti della riga di comando. Puoi avere
multiplo -f argomenti e mescolarli con -D e a -U argomenti; le opzioni successive hanno la precedenza
quelli precedenti.

Ogni direttiva deve essere su una singola riga. Definizioni macro di tipo oggetto (senza
argomenti) sono impostati sul valore specificato. Definizioni di macro simili a funzioni (con
argomenti) vengono trattati come se fossero impostati su 1.

-b Sostituisci le righe rimosse con righe vuote invece di eliminarle. Si escludono a vicenda
con la -B opzione.

-B Comprimi le righe vuote attorno a una sezione eliminata. Si escludono a vicenda con il -b
opzione.

-c Complemento, cioè, le righe che sarebbero state rimosse o cancellate vengono mantenute e
viceversa.

-d Attiva la stampa dei messaggi di debug.

-e Per impostazione predefinita, unifdef segnalerà un errore se è necessario rimuovere un preprocessore
direttiva che si estende su più di una riga, ad esempio, se ha un commento su più righe
pende dalla sua estremità destra. Il -e flag fa in modo che ignori invece la linea.

-h Guida alla stampa.

-Isentiero Specifica di unifdefall un posto in più da cercare #includere File. Questa opzione
viene ignorato da unifdef per compatibilità con cpp(1) e per semplificare il
implementazione di unifdefall.

-K Trattare sempre il risultato di && e a || operatori come sconosciuti se uno degli operandi è
sconosciuto, invece di cortocircuitare quando gli operandi sconosciuti non possono influenzare il risultato.
Questa opzione serve per la compatibilità con le versioni precedenti di unifdef.

-k Processo #Se e a #elif linee con espressioni costanti. Per impostazione predefinita, sezioni
controllati da tali linee vengono passati invariati perché in genere iniziano
“#if 0” e sono usati come una sorta di commento per delineare lo sviluppo futuro o passato.
Sarebbe scortese eliminarli, proprio come sarebbe per i commenti normali.

-m Modifica uno o più file di input sul posto.

-M backext
Modifica i file di input sul posto e mantieni i backup dei file originali aggiungendo il
backext ai nomi dei file di input.

-n Aggiungi le direttive #line all'output dopo ogni riga cancellata, in modo che gli errori
prodotti durante la compilazione del file di output corrispondono ai numeri di riga nell'input
file.

-o file di uscita
Scrivi l'output nel file file di uscita invece dell'output standard durante l'elaborazione di a
file singolo.

-s Invece di elaborare un file di input come al solito, questa opzione fa sì che unifdef per produrre
un elenco di macro utilizzate nelle espressioni di controllo della direttiva del preprocessore.

-S Come -s opzione, ma viene stampata anche la profondità di annidamento di ciascuna macro. Questo è
utile per calcolare il numero di possibili combinazioni di interdipendenti
macro definite/non definite.

-t Disabilita l'analisi per stringhe C, commenti e continuazioni di riga, il che è utile
per il testo normale. Questa è una versione coperta del -ID e a -iU bandiere.

-V Stampa i dettagli della versione.

-x {012}
Imposta la modalità stato di uscita su zero, uno o due. Vedi il EXIT STATUS sezione sottostante per
dettagli.

Le unifdef l'utilità prende il suo input da stdin se non ci sono filetto argomenti. Devi usare
, il -m or -M opzioni se sono presenti più file di input. Puoi specificare inut da stdin o
output su stdout con '-'.

Le unifdef l'utilità funziona bene con il -Dsym possibilità di diff(1).

EXIT STATUS


Nell'uso normale il unifdef lo stato di uscita dell'utility dipende dalla modalità impostata utilizzando il -x
opzione.

Se la modalità di uscita è zero (impostazione predefinita), allora unifdef esce con stato 0 se l'uscita è an
copia esatta dell'ingresso, o con stato 1 se l'uscita è diversa.

Se la modalità di uscita è una, unifdef esce con lo stato 1 se l'uscita non è modificata o 0 se lo è
differisce.

Se la modalità di uscita è due, unifdef esce con stato zero in entrambi i casi.

In tutte le modalità di uscita, unifdef esce con lo stato 2 in caso di errore.

Lo stato di uscita è 0 se il -h or -V vengono fornite le opzioni della riga di comando.

DIAGNOSTICA


Troppi livelli di nidificazione.

Inappropriato #elif, #else or #endif.

Linea di controllo del preprocessore offuscata.

EOF prematuro (con il numero di riga del più recente non terminato #Se).

EOF nel commento.

Utilizzare unifdef online utilizzando i servizi onworks.net



Gli ultimi programmi online per Linux e Windows