21

unsigned long int 同等unsigned longですか?C++で

私の意見では、それらは同じです。しかし、コードで unsigned long int をまだ使用している人を何人か見かけました。理由がわからない?誰か説明してくれませんか

#include <stdio.h>

int main() {
    unsigned long int num = 282672; 
    int normalInt = 5;
    printf("");
    return 0;
}
4

5 に答える 5

24

はい。

longの省略形ですlong int。これは、原則longとして単なる修飾子であるdoubleためです (たとえば、データ型を拡張するために使用することもできます)。

C++ ISO 標準、セクション 7.1.5.2 から、同等の型指定子の表:

ここに画像の説明を入力

于 2012-08-02T14:35:10.550 に答える
4

C99 標準の §6.7.2 には、次の型のリストが示されています (これは抜粋にすぎません)。

  • shortsigned shortshort int、またはsigned short int
  • unsigned short、 またunsigned short int
  • intsigned、またはsigned int
  • unsigned、 またunsigned int
  • longsigned longlong int、またはsigned long int
  • unsigned long、 またunsigned long int
  • long longsigned long longlong long int、またはsigned long long int
  • unsigned long long、 またunsigned long long int

次の点を追加します。

(5) コンマ区切りの各セットは同じ型を指定しますが、ビットフィールドの場合、指定子が と同じ型を指定するか、または とint同じ型を指定するかは処理系定義です。signed intunsigned int

于 2012-08-02T14:44:35.400 に答える
1

はいunsigned, signed, short,longlong longすべて の単純な型指定子ですXXX int

標準の7.1 指定子 [dcl.spec]を参照してください。

3 [ 注: デフォルトでは、signed、unsigned、long、および short は int を意味するため、これらの指定子の 1 つの後に現れる型名は、(再) 宣言された名前として扱われます。[ 例:

void h(unsigned Pc); // void h(unsigned int)

void k(unsigned int Pc); // void k(unsigned int)

—例の終了] —注記の終了]

および7.1.6.2 単純型指定子 [dcl.type.simple]

    Table 10 — simple-type-specifiers and the types they specify

    Specifier(s)            | Type
    ------------------------+---------------------------------
    type-name               | the type named
    simple-template-id      | the type as defined in 14.2
    char                    | “char”
    unsigned char           | “unsigned char”
    signed char             | “signed char”
    char16_t                | “char16_t”
    char32_t                | “char32_t”
    bool                    | “bool” 
    unsigned                | “unsigned int”
    unsigned int            | “unsigned int”
    signed                  | “int”
    signed int              | “int”
    int                     | “int”
    unsigned short int      | “unsigned short int”
    unsigned short          | “unsigned short int”
    unsigned long int       | “unsigned long int”
    unsigned long           | “unsigned long int”
    unsigned long long int  | “unsigned long long int”
    unsigned long long      | “unsigned long long int”
    signed long int         | “long int”
于 2012-08-02T14:44:54.697 に答える
0

unsigned long intは正しい型定義ですが、int無視できます。

于 2012-08-02T14:35:43.850 に答える
0

はい、同じです。言うunsigned long intことは、それがintであることを明示的に述べているだけです。

sizeof(unsigned long int)型のサイズは、とでいつでも確認できます。sizeof(unsigned long)

お役に立てれば。

于 2012-08-02T14:36:34.550 に答える