Precompilato noto anche come pre-trattamento, il lavoro svolto è sostituire il codice di testo
I comandi che iniziano con #, # include file come copiare il codice contenuto sostituiscono # define definizioni di macro, compilazione condizionale, ecc
È il palcoscenico per fare il lavoro preparatorio per la compilazione delle
Principalmente affrontare il pre-compilatore direttiva # inizioDirettiva Pre-compiler indica l'azione prima che le procedure formali eseguite dal compilatore per compilarlo, e può essere posizionato in qualsiasi punto del programma. Direttive comuni pre-compilatore sono:
(1) direttiva # include
La direttiva indica al compilatore di inserire l'intero contenuto del file xxx.xxx qui. Se si utilizza <> poi trovare il file allegato nella directory INCLUDE file system, se racchiuso in "", quindi cercare il file dal file nella directory corrente. In generale, il documento è il suffisso "h" o file di intestazione "PPC".
Nota: <> non cercare i file di intestazione nella directory corrente, se non lo facciamo <> al posto di "" espansione nomefile dalla testa, e la sua importanza per i precedenti file di intestazione di ricerca nella directory corrente, quindi nella La ricerca directory predefinita.
(2) # define direttiva
Il comando ha tre usi:
La prima è la definizione di identità, identità intervallo per l'intero programma, a forma di # define XXX, spesso utilizzato in combinazione con # if;
Il secondo è quello di definire costanti, come ad esempio # define max 100, i rappresentanti massimo (in questo caso l'uso di costanti definite const migliore ragione vedi nota 1) 100;
La terza è la definizione di "funzione", come # define get_max (a, b) ((a)> (b) (a): (B)) viene utilizzato dopo get_max (x, y) può essere ottenuto x e y del numero più grande (ci sono alcuni svantaggi di questo metodo, vedi nota 2).
(3) # if, # else e # endif direttiva
Queste istruzioni sono tipicamente utilizzati in combinazione con questo:
# Se definito (identificatore) / / Se la definizione dell'identità
Istruzione da eseguire
# Else
Istruzione da eseguire
# Endif
Nel file di intestazione per evitare chiamate ripetute (per esempio, due file di intestazione contengono tra loro), spesso utilizzando una tale struttura:
# Se! (XXX Definito) / / XXX nel programma come un identificatore univoco,
/ / Ogni file di intestazione identificatore non dovrebbe essere lo stesso.
Metodo comune identificativo / / se il file di intestazione è denominato da "abc.h"
/ / È identificato come "abc_h"
# Definire XXX
Contenuto reale, come ad esempio la dichiarazione di funzione
# Endif
Nota 1: Perché: const costanti tipi di dati, costanti e macro senza tipi di dati. Il compilatore in grado di eseguire i controlli di sicurezza di tipo sul primo, mentre il secondo solo sostituzione di un carattere, senza controlli di sicurezza di tipo, e può generare errori imprevisti (effetto marginale) quando la sostituzione di un carattere.
Nota 2: ad esempio get_max (a , b) quando, a verrà eseguita un numero di volte a seconda delle dimensioni e la b! Così è stato suggerito di usare funzioni inline anziché questo metodo per migliorare la velocità. Sebbene tali inconvenienti, ma questo metodo è veramente molto flessibile perché A e B possono essere di vari tipi di dati.
|