2013-03-19 17 views
6

Nella seguente funzione:Qual è il tipo di dati "breve" in C?

void AddWordData(FILE* dataFile, short word, int* dc) 
{ 
    fprintf(dataFile, "%06o\n", word); 
    ++(*dc); 
} 

la funzione sta ottenendo un tipo corto. Ho fatto qualche ricerca nel web ma ho trovato solo brevi int. cosa significa quando una funzione sta diventando di tipo breve? che tipo di dati è?

+2

Uguale a breve int. –

+0

Un'altra domanda che è emersa durante, che cosa esattamente stampata quando è scritta "% 06o \ n" – Yuval

+2

'% 06o \ n' Questo aggiungerà 6 padding' 0's e stamperà 'word' in' octal' con un linebreak ('' \ n'') alla fine. –

risposta

14

short è l'abbreviazione di short int. Sono sinonimi. short, short int, signed short e signed short int sono tutti dello stesso tipo di dati. Esattamente quanti bit sono in una short dipende dal compilatore e il sistema, ma è necessario avere at least 16 bits:

Qualsiasi compilatore conforme allo standard devono anche rispettare i seguenti limiti rispetto alla gamma di valori qualsiasi tipo particolare può accettare. Si noti che questi sono limiti inferiori: un'implementazione è libera di superare uno o tutti questi. Si noti inoltre che l'intervallo minimo per un char dipende dal fatto che un char sia considerato o meno firmato o non firmato. ... breve int: da -32767 a +32767.

Altre di Wikipedia:

La dimensione effettiva tipi interi varia da attuazione. L'unica garanzia è che il long long non è più piccolo di long, che non è più piccolo di int, che non è più piccolo di short. Inoltre, int dovrebbe essere il tipo intero con cui lavora il processore di destinazione. Ciò consente una grande flessibilità: ad esempio, tutti i tipi possono essere a 64 bit. Tuttavia, solo diversi schemi di larghezza intera (modelli di dati) diversi sono popolari e poiché il modello di dati definisce in che modo i diversi programmi comunicano, viene utilizzato un modello di dati uniforme all'interno di una determinata interfaccia dell'applicazione del sistema operativo. [3]

In pratica si dovrebbe notare che il char ha solitamente una dimensione di 8 bit, di solito è di 16 bit di dimensione e di solito ha una lunghezza di 32 bit (anche unsigned char, unsigned short e unsigned long). Ad esempio questo vale per piattaforme diverse come Sun0S 4 Unix del 1990, Microsoft MSDOS, Linux moderno e Microchip MCC18 per microcontrollori PIC embedded a 8 bit.

Problemi correlati