Ho cercato su Google e non sono riuscito a trovare linee guida, regole, stili, ecc. Quando si dichiara un intero (firmato o non firmato) in C, si può fare la scelta di usare solo ciò che il processore definisce per int oppure è possibile specificare la larghezza (ad es. uint16_t
, int8_t
, uint32_t
, ecc.).Per dimensionare o meno?
Quando si eseguono programmi C desktop/dedicati, ho teso molto verso "usa solo i valori predefiniti" a meno che non fosse veramente importante per me specificare la larghezza (ad esempio "questo è un ID a 32 bit").
Ultimato il lavoro con più microcontrollori (pic18 e AVR), ho teso a ridimensionare tutto, solo perché si diventa così coscienti dello spazio.
E ora sto lavorando su un codice Pic32 (senza sistema operativo), dove mi trovo diviso tra i due estremi.
Sono curioso di sapere quali rubriche (se ce ne sono) le persone hanno formulato per aiutarli a decidere quando dimensionare i loro int e quando utilizzare i valori predefiniti? E perché?
Durante la scrittura di software non throwaway, tendo ad usare i tipi 'uint_least32_t' ecc. A meno che non abbia bisogno di una dimensione specifica. Ciò mi consente di essere sicuro di una dimensione minima e consente al compilatore di ottimizzare per le dimensioni successive più grandi. –
Questa domanda sta sollecitando un'opinione.Di solito, riservo i numeri interi per i tipi di dati che vengono comunicati attraverso una rete o che vengono memorizzati su un disco e possono essere letti successivamente da un programma diverso. – jxh
@jxh Seguo la stessa pratica. Se si tratta di un tipo di dati che è solo per il consumo interno di un'istanza autonoma (vale a dire, non distribuita) del processo che definisce il tipo di dati, lascio che il compilatore scelga l'opinione della "dimensione migliore" per il tipo. Per tutto ciò che lascia il processo (sia per la memorizzazione persistente o per le comunicazioni tra processi), preferirei essere esplicito nel dimensionamento dei dati. Potrebbe essere ancora necessario conoscere i problemi di endianness, ma almeno la dimensione dei dati è prevedibile. –