Condividi tramite


Operatori di pre-elaborazione di makefile

Le espressioni di pre-elaborazione di makefile possono utilizzare gli operatori che agiscono sui valori costanti, sui codici di uscita dei comandi, stringhe, macro e percorsi di file system.Per valutare l'espressione, il preprocessore innanzitutto espandere le macro ed esegue i comandi e quindi esegue operazioni.Le operazioni vengono valutate per raggruppamento esplicito parentesi e quindi per la precedenza degli operatori.Il risultato è un valore costante.

L'operatore di DEFINED è un operatore logico che agisce su un nome di macro.L'espressione DEFINED(nomemacro) è true se nomemacro è definito, anche se non dispone di un valore.DEFINED combinazione con !IF o a !ELSE IF equivale a !IFDEF o a !ELSE IFDEF.Tuttavia, a differenza di tali direttive, DEFINED può essere utilizzato in espressioni complesse.

L'operatore di EXIST è un operatore logico che agisce su un percorso di file system.EXIST(percorso) è true se percorso esiste.Il risultato di EXIST può essere utilizzato in espressioni binarie.Se contiene degli spazi, il percorso deve essere racchiuso tra virgolette.

Per confrontare due stringhe, utilizzare l'operatore di uguaglianza (==) o l'operatore di disuguaglianza (!=).Racchiudere le stringhe tra virgolette doppie.

Le costanti Integer è possibile utilizzare gli operatori unari per la negazione numerica (–), il complemento (~) e la negazione logica (!).

Le espressioni possono utilizzare i seguenti operatori.I responsabili di precedenza uguale vengono raggruppati e i gruppi sono elencati in ordine decrescente di precedenza.Gli operatori unari si associano all'operando a destra.I responsabili binari di precedenza uguale associano gli operandi da sinistra a destra.

Operatore

Descrizione

DEFINED(nomemacro)

Genera un valore logico per lo stato corrente della definizione di nomemacro.

EXIST(path)

Genera un valore logico l'esistenza di un file a percorso.

!

NOT logico unario.

~

Unario il complemento di uno.

-

Negazione unaria.

*

Moltiplicazione.

/

Divisione.

%

Modulo (resto).

+

Addizione.

-

Sottrazione.

<<

Spostamento bit per bit a sinistra.

>>

Destra bit per bit di spostamento.

<=

Minore o uguale a.

>=

Maggiore o uguale.

<

Minore.

>

Maggiore di.

==

Uguaglianza.

!=

Disuguaglianza.

&

AND bit per bit.

^

XOR bit per bit.

|

OR bit per bit.

&&

AND logico.

||

OR logico.

[!NOTA]

Operatore XOR bit per bit (^) è lo stesso del carattere di escape e deve essere necessario utilizzare caratteri di escape (come ^^) quando viene utilizzato in un'espressione.

Vedere anche

Concetti

Espressioni nella pre-elaborazione di makefile