[英]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給出了以下類型列表(這只是一個摘錄):
short
, signed short
, short int
或signed short int
unsigned short
或unsigned short int
int
, signed
或signed int
unsigned
或unsigned int
long
, signed long
, long int
或signed long int
unsigned long
,或unsigned long int
long long
, signed long long
, long long int
,或signed long long int
unsigned long long
,或unsigned long long int
以下附加點:
(5)每個逗號分隔的集合指定相同的類型,除了對於位字段,它是實現定義的,指定符
int
指定與signed int
相同的類型還是與unsigned int
相同的類型。
是的 unsigned
, signed
, short
, long
, long 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.