簡體   English   中英

C ++類型unsigned long int

[英]C++ type unsigned long int

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;
}

是。

long只是long int的簡寫。 這是因為原則上long只是一個限定符(例如,它也可以用於延長double數據類型)

從C ++ ISO標准的7.1.5.2節,一個等效類型說明符表:

在此輸入圖像描述

C99標准的§6.7.2給出了以下類型列表(這只是一個摘錄):

  • shortsigned shortshort intsigned short int
  • unsigned shortunsigned short int
  • intsignedsigned int
  • unsignedunsigned int
  • longsigned longlong intsigned 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 int相同的類型還是與unsigned int相同的類型。

是的 unsignedsignedshortlonglong long都是XXX int簡單類型說明符。

請參閱標准中的7.1說明符[dcl.spec]

3 [注意:由於默認情況下為signed,unsigned,long和short意味着int,因此在其中一個說明符之后出現的類型名稱被視為正在(重新)聲明的名稱。 [例如:

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”

unsigned long int是正確的類型定義,但int可以忽略。

是的,他們是一樣的。 unsigned long int只是明確地聲明它是一個int。

你總是可以通過sizeof(unsigned long int)sizeof(unsigned long)來查看類型的大小。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM