Inizializzazione dell'array con {0}, {0,}?

Inizializzazione dell'array con {0}, {0,}?

In realtà, in C++, personalmente raccomando:

char myArray[MAX] = {};

Fanno tutti la stessa cosa, ma questo mi piace di più in C++; è il più conciso. (Purtroppo questo non è valido in C.)

A proposito, nota quel char myArray[MAX] = {1}; non inizializza tutti i valori su 1! Inizializza solo il primo valore su 1 e il resto su zero. Per questo motivo, ti consiglio di non scrivere char myArray[MAX] = {0}; perché è un po' fuorviante per alcune persone, anche se funziona correttamente.


Sono equivalenti per quanto riguarda il codice generato (almeno nelle build ottimizzate) perché quando un array viene inizializzato con {0} sintassi, tutti i valori che non sono specificati in modo esplicito sono implicitamente inizializzati con 0 e il compilatore ne conoscerà abbastanza per inserire una chiamata a memset .

L'unica differenza è quindi stilistica. La scelta dipenderà dallo standard di codifica che utilizzi o dalle tue preferenze personali.


Penso che la prima soluzione sia la migliore.

char myArray[MAX] = {0};  //best of all