C non inizializzare variabili automaticamente, quindi se non li si inizializza correttamente, è possibile ottenere risultati imprevisti. Fortunatamente, C lo rende facile inizializzare le variabili quando si dichiara loro.
Istruzioni
Inizializzare le variabili alle dichiarazione
1
Inizializzare una variabile in C per assegnare un valore iniziale. Senza questo, si otterrà tutto ciò che è accaduto a essere in memoria in quel momento, che conduce a comportamento incoerente e irriproducibile bug che può essere estremamente difficile da rintracciare.
2
Aggiungere un'inizializzazione della dichiarazione. È sufficiente aggiungere un'assegnazione fino alla fine della dichiarazione, in questo modo:
int x = 5;
3
Sa che l'inizializzazione di matrici funziona allo stesso modo, Salva che è necessario inserire più valori separati da virgole all'interno di parentesi graffe. Durante questa operazione, è possibile omettere la dimensione della matrice, e sarà riempito automaticamente:
int month_lengths [] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
4
Approfitta delle stringhe di caratteri. Stringhe di caratteri, che sono davvero le matrici di caratteri, supportano anche un formato più semplice per l'inizializzazione:
Char [] title = "My Program";
5
Rapidi, entrambi i tipi di inizializzazione di una matrice in formato puntatore (poiché le matrici sono davvero puntatori):
int month_lengths = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
char title = "My Program";
6
Ricorda che le strutture in C vengono inizializzate nello stesso modo come matrici:
ruolo di struct = {"Amleto", 7, FALSE, "Principe di Danimarca", "Kenneth Branagh"};
Inizializzare le variabili manualmente
7
Attendere per inizializzare una variabile in un altro posto nel programma se questo sarà più chiaro. Per esempio, una variabile che sarà l'indice di un ciclo for è di solito migliore inizializzato nel ciclo for. Questo rende più facile per un altro programmatore leggere, dato che l'inizializzazione è vicino a dove sarà utilizzato.
8
Inizializzare la struttura di dati al momento giusto. Se una struttura di dati sta per essere allocata dinamicamente con malloc () o una funzione simile, non è possibile inizializzare fino a dopo che le sono assegnati. Tuttavia, in questo caso, ciò che si sta dichiarando è in realtà un puntatore, che dovrebbe comunque essere inizializzato su NULL come una questione di corso.
Consigli & Avvertenze
- Si consiglia di prendere l'abitudine di inizializzazione di tutto, anche se non è necessario. Overhead della CPU è banale, e risparmiare da bug che sono difficili da diagnosticare un giorno.
- Se si Inizializza una variabile di stringa alla dichiarazione e poi modificarlo in seguito, essere sicuri di non invasa la lunghezza della stringa originale. È generalmente preferibile solo dichiarare una stringa e quindi inizializzarlo manualmente con strcpy () se si prevede di modificarlo durante il programma.