Question 1.1

Come decidere quale tipo di intero utilizzare ?


Se grandi valori (sopra 32.767 o sotto -32.767), possono servire, usa long. Altrimenti, se lo spazio e` molto importante (cioe` se ci sono grandi vettori o molte strutture), usa short. Altrimenti, usa int. Se caratteristiche di overflow ben definite sono importanti e valori negativi non lo sono, o se vuoi tenerti alla larga da problemi di estensioni di segno nella manipolazione bit o bytes, usa one dei correspondenti tipi unsigned. (Tuttavia, attenzione a mescolare valori signed e unsigned in espressioni.)

Sebbene tipi caratteri (specialmente unsigned char) possono essere usati come interi "piccolissimi", cio` talvolta crea piu` problemi di quanti ne risolva, a causa di impredittibili estensione di segno e aumntata dimensione del codice. (Utilizzando unsigned char puo` aiutare; vedere domande 12.1 per un problema connesso.)

Un simile compromesso spazio/tempo si applica nella scelta tra float e double. Nessuna delle regole su citate vale se si preleva l'indirizzo di una variabile che deve avere un tipo particolare.

Se, per qualche ragione, e` necessario dichiarare qualcosa con una dimensione esatto (di solito l'unica buona ragione per fare cio` e` nel tentare di conformarsi a qulache configurazione di memoria imposto esternamente, ma vedi domanda 20.5), bisogna assicurarsi di incapsulare la scelta dietro un appropriato typedef.

Riferimenti: K&R1 Sez. 2.2 p. 34
K&R2 Sez. 2.2 p. 36, Sez. A4.2 pp. 195-6, Sez. B11 p. 257
ANSI Sez. 2.2.4.2.1, Sez. 3.1.2.5
ISO Sez. 5.2.4.2.1, Sez. 6.1.2.5
H&S Sez. 5.1,5.2 pp. 110-114


Leggere di seguito: prossima su cima


Questa pagina e` di Steve Summit // Copyright 1995 // mail feedback