質問

私はこのunsigned「型なし」タイプは、数回使用しますが、それについての説明を見たことがない見てきました。私は、対応するsignedタイプがありますと仮定します。ここでは例があります:

static unsigned long next = 1;
/* RAND_MAX assumed to be 32767 */
int myrand(void) {
    next = next * 1103515245 + 12345;
    return((unsigned)(next/65536) % 32768);
}
void mysrand(unsigned seed) {
    next = seed;
}

私がこれまでに収集したもの:
- 私のシステムで、sizeof(unsigned) = 4(32ビットunsigned int型のヒント)
- それは符号なしのバージョンに別のタイプのキャストの省略形として使用される可能性があります:

signed long int i = -42;
printf("%u\n", (unsigned)i);

このANSI C、または単にコンパイラの拡張機能ですか?

役に立ちましたか?

解決

unsignedは本当にunsigned intの短縮形であり、従って、標準Cで定義されます。

他のヒント

unsignedunsigned intを意味します。 signedsigned intを意味します。ただunsignedを使用すると、これはANSIです。

はいC.でunsigned intを宣言する怠惰な方法です。
あなたはデータ型「INT」を省略した場合、

歴史的にCで、想定されました。だから、「符号なし」は「unsigned int型」の省略形です。これは、長い時間のために悪い習慣と考えられてきたが、それを使用してそこにコードのかなりの量が依然として存在します。

Cにおいて、unsignedunsigned intのショートカットである。

あなたはlong

のショートカットですlong intに同じを持っています

そして、(それがunsigned longになります)unsigned long intを宣言することも可能です。

これはANSI標準である

CとC ++では

unsigned = unsigned int (Integer type)
signed   = signed int (Integer type)

nビットを含む符号なし整数0との間の値を持つことができ (2 ^ N-1)、2 ^ n個の異なる値である。

符号なし整数が正またはゼロのいずれかである。

符号付き整数は2の補数を使用してコンピュータに保存されます。

別の質問するからの私のの答えを持ち込みます。

C指定するから、セクション6.7.2ます:

  

- 符号なし、またはunsigned int型

unsignedは、タイプを指定していないとき、unsigned intするデフォルトのものとすることを意味。だから、書くunsigned aunsigned int aと同じである。

C17 6.7.2§2によるます:

  

型指定子の各リストは、次のマルチセット(項目ごとに複数の多重集合がある場合、カンマで区切られた)のいずれかでなければなりません。型指定は任意の順序で発生することがあり、場合によっては他の宣言指定子と混在

     

- 無効
   - 文字
   - signed char型の
   - unsigned char型
   - 短い、署名短い、短いint型、または符号付きshort int型の
   - unsigned short型、またはunsigned short int型の
   - int型、署名、またはint型の
を締結    - 符号なし、またはunsigned int型
   - int型
長い、長い、長いint型に署名し、又は長期署名    - 符号なしlong、またはunsigned long int型
   - 長い長い、長い長い長い長いint型に署名し、または符号付きlong long int型
   - 符号なしの長い長い、または符号なしlong long int型
   - フロート
   - ダブル
   - 長い二
   - _Bool
   - フロート_Complex
   - ダブル_Complex
   - 長い二_Complex
   - アトミック型指定子
   - structまたはunion指定子
   - 列挙指定子
   - のtypedef名

だから、unsigned intの場合には、我々はunsignedまたはunsigned intを書くことができるか、私たちは狂気、int unsignedを感じている場合。標準以来、後者は「...おそらく混ぜ、任意の順序で行うことができる」ように十分に愚かです。これは、言語の既知の欠陥である。

適切なCコードはunsigned intを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top