logo

Cos'è l'int breve in C?

Nel linguaggio di programmazione C, breve int è un tipo di dati utilizzato per memorizzare valori interi. È un modificatore di tipo che può essere utilizzato con il file tipo di dati int per creare una variabile intera più piccola, utilizzando meno memoria di un normale int.

IL breve int il tipo di dati occupa 2 byte di memoria, che è la metà di un normale tipo di dati int e può rappresentare valori interi nell'intervallo di -32.768 A 32.767 .

Sintassi di Short int

nozioni di base su Java

La sintassi per dichiarare una variabile int breve è la seguente:

 short int variable_name; 

Ad esempio, il codice seguente dichiara e inizializza a breve int variabile denominata età:

 short int age = 25; 

Le variabili int brevi possono portare a errori se non vengono utilizzate con attenzione. È perché hanno un intervallo di valori più piccolo rispetto a variabili int e potrebbero traboccare se assegnato un valore al di fuori del loro intervallo. Per questo motivo è importante assicurarsi che i valori assegnati a una variabile short int rientrino nel suo intervallo.

Inoltre, è possibile utilizzare la parola chiave breve al posto di breve int per dichiarare una variabile di questo tipo. Pertanto le due dichiarazioni seguenti sono equivalenti:

 short int variable_name; short variable_name; 

Alcuni altri dettagli aggiuntivi su tipo di dati 'short int' sono come segue:

    Dimensioni e intervallo di valori

Come accennato in precedenza, occupa short int 2 byte di memoria, che è la metà della dimensione di un normale tipo di dati int. La dimensione di un short int è definita dall'implementazione, il che significa che può variare a seconda della piattaforma e del compilatore utilizzato. Tuttavia, è sempre garantito che sia inferiore a un normale int.

In termini di intervallo di valori, un int breve può memorizzare valori interi nell'intervallo di -32.768 A 32.767 . Questo intervallo può essere determinato utilizzando il SHRT_MIN E SHRT_MAX costanti, che sono definite in limiti.h file di intestazione.

    Uso di 'short int'

Il tipo di dati short int viene in genere utilizzato quando lo spazio di memoria è un problema o quando l'intervallo di valori archiviati nella variabile rientra nell'intervallo di short int. Alcuni esempi di situazioni in cui è possibile utilizzare un int breve includono:

  • Nei sistemi embedded in cui la memoria è limitata.
  • Quando si creano matrici di numeri interi di grandi dimensioni in cui è necessario ottimizzare l'utilizzo della memoria.
  • Quando è noto che l'intervallo di valori memorizzati nella variabile rientra nell'intervallo di a breve int , come la memorizzazione dell'età di una persona, che in genere non supera 100 anni .
  • Modificatori di tipo

IL tipo di dati int breve è un modificatore di tipo, il che significa che può essere utilizzato in combinazione con altri tipi di dati per creare nuovi tipi di dati. Ad esempio, le seguenti sono dichiarazioni valide di variabili:

 short int x; short y; short int *ptr; short int arr[10]; 
    Conversioni implicite

Quando si eseguono operazioni aritmetiche o di confronto tra variabili di diversi tipi di dati, C può eseguire conversioni implicite per garantire che le operazioni vengano eseguite correttamente. Quando si utilizzano variabili int brevi, è importante essere consapevoli di queste conversioni, poiché possono provocare comportamenti imprevisti. Ad esempio, considera il seguente codice:

 #include int main() { short int x = 300; short int y = 200; short int z = x + y; printf('%d
', z); return 0; } 

Produzione:

 500 

Spiegazione:

In questo codice, z io gli viene assegnato il valore di 500 , che è il risultato corretto dell'aggiunta X E E . Tuttavia, se il printf l'istruzione viene modificata in printf('%u ', z), l'uscita sarà 244 , che è il risultato della conversione 500 a un non firmato breve int . Succede perché il %uh viene utilizzato l'identificatore di formato, che indica che il valore da stampare dovrebbe essere un short int senza segno.

    Promozione e retrocessione

Quando si eseguono operazioni tra variabili di tipi di dati diversi, C può eseguire promozioni e retrocessioni per garantire che le operazioni vengano eseguite correttamente. Una promozione si verifica quando una variabile con un tipo di dati più piccolo viene convertita implicitamente in una variabile con un tipo di dati più grande, mentre una retrocessione si verifica quando una variabile con un tipo di dati più grande viene convertita implicitamente in una variabile con un tipo di dati più piccolo. Quando si utilizzano variabili int brevi, è importante essere consapevoli di queste promozioni e retrocessioni, poiché possono influenzare i risultati delle operazioni aritmetiche e di confronto.

    Inizializzazione predefinita

Se un variabile intera breve viene dichiarato senza essere inizializzato, il suo valore non è definito. In altre parole, può contenere qualsiasi valore, incluso un valore negativo o un valore esterno all'intervallo di breve int . Pertanto, è buona norma inizializzare sempre le variabili su un valore noto quando vengono dichiarate.

: in Java
    Colata

Colata è il processo di conversione di una variabile da un tipo di dati a un altro. Quando si esegue il cast di una variabile su a breve int , il valore della variabile viene troncato per rientrare nell'intervallo di breve int . Ad esempio, considera il seguente codice:

 int x = 500; short int y = (short int) x; 

In questo codice, il valore di X È 500 , che è al di fuori dell'intervallo di short int. Tuttavia, quando X è lanciato su a breve int, il valore viene troncato per rientrare nell'intervallo di breve int , con il risultato di E viene assegnato il valore di -12 . Pertanto, quando si esegue il cast delle variabili, è importante assicurarsi che il valore risultante rientri nell'intervallo del tipo di dati da sottoporre a cast.

    Firma

Per impostazione predefinita, breve int è un tipo di dati firmato , il che significa che può rappresentare sia valori positivi che negativi. Tuttavia è anche possibile dichiarare breve int come tipo di dati senza segno, utilizzando il file int breve senza segno O parola chiave breve senza segno . Un short int senza segno può rappresentare solo valori non negativi, ma il suo intervallo è raddoppiato 0 A 65.535 .

diagramma uml java
    Compatibilità

Da breve int è un tipo di dati più piccolo di int , può essere promosso implicitamente a int quando utilizzato in aritmetica o operazioni di confronto con un int. Significa che a breve int può essere utilizzato ovunque un int è previsto, senza la necessità di un cast esplicito.

    Portabilità

La dimensione di breve int può variare a seconda della piattaforma e del compilatore utilizzato. Per garantire la portabilità del codice su piattaforme diverse, si consiglia di utilizzare il file File di intestazione stdint.h , che definisce tipi interi a dimensione fissa con larghezze e segni specifici. Ad esempio, il tipo int16_t è un Tipo intero con segno a 16 bit , che equivale a breve int sulla maggior parte delle piattaforme.

    Indicizzazione degli array

Quando si dichiara un array di valori interi brevi , è possibile accedere a ciascun elemento dell'array utilizzando un indice. L'indice può essere un valore letterale intero o una variabile di tipo int. Tuttavia, se l'indice è una variabile di tipo breve int , verrà automaticamente promosso a an int prima di essere utilizzato per accedere all'array. Per esempio:

 short int arr[10]; short int i = 5; short int val = arr[i]; // i is promoted to int before being used as an index 
    Manipolazione dei bit

breve int può essere utilizzato per operazioni di manipolazione dei bit, come ad esempio mutevole E mascheramento . Quando si sposta a breve int valore, il risultato è un valore intero breve. Tuttavia, quando si utilizzano operatori bit a bit come & e |, i valori int brevi vengono promossi a int prima che l'operazione venga eseguita.

    Prestazione

In alcuni casi, l'utilizzo dell'int breve anziché int può migliorare le prestazioni, soprattutto su piattaforme con memoria o potenza di elaborazione limitate. Dipende tuttavia dall'applicazione specifica e dall'hardware utilizzato e deve essere testato caso per caso.

    Inizializzazione tramite suffisso

Il linguaggio C fornisce un suffisso per inizializzare le variabili con un tipo int breve. Il suffisso 'S' O 'S' può essere utilizzato con un valore costante per specificare esplicitamente una costante int breve. Per esempio:

 Short int x=10s;