2013-03-19 6 views
6

Cの「短い」データタイプとは何ですか?次の関数で

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

機能が短いタイプを取得しています。 ウェブで検索しましたが、短いintしか見つかりませんでした。 関数が短い型を取得しているときはどういう意味ですか? どのデータ型ですか?

+2

short intと同じです。 –

+0

「%06o \ n」 – Yuval

+2

「%06o \ n」 これは、6つのパディング「0」を追加し、8進数に 'word 'を改行(' \ n ")最後に。 –

答えて

14

shortは、short intの略です。それらは同義語です。 short,short int,signed shortおよびsigned short intは、すべて同じデータタイプである。 shortに正確にどのように多くのビットでは、コンパイラやシステムに依存し、有することが要求されるat least 16 bits

、任意の値の範囲に対して次の制限を尊重しなければならない標準に準拠した任意のコンパイラ特定のタイプが受け入れるかもしれない。これらは下限であることに注意してください。実装はこれらのいずれかまたはすべてを自由に超えてもかまいません。また、charの最小範囲は、charが符号付きであるとみなされるか否かによって異なります。 ... short int:-32767〜+32767。整数型の実際のサイズは、実装によって異なり

Wikipediaから

詳細。唯一の保証は、long longがlongより小さくないことです。これはintより小さくはなく、より小さくはありません。また、intは、ターゲットプロセッサが最も効率的に動作する整数型でなければなりません。これにより大きな柔軟性が得られます。たとえば、すべてのタイプを64ビットにすることができます。しかし、いくつかの異なる整数幅スキーム(データモデル)のみが一般的であり、データモデルは異なるプログラムがどのように通信するかを定義するので、所与のオペレーティングシステムアプリケーションインターフェース内で均一なデータモデルが使用される。

実際には、charは通常8ビットのサイズであり、shortは通常16ビットのサイズであり、longのサイズは通常32ビットです(同様にunsigned char、unsigned shortおよびunsigned long)。たとえば、1990年代のSun0S 4 Unix、Microsoft MSDOS、現代のLinux、組み込み型8ビットPICマイクロコントローラ向けのMicrochip MCC18など、多種多様なプラットフォームでこれが当てはまります。

関連する問題