C++ C++;输入无符号长整型
C++ C++;输入无符号长整型,c++,c,C++,C,unsigned long int是否等于unsigned long? 在C中++ 在我看来,他们是一样的。但我看到一些人仍然在代码中使用无符号长整型。 不明白为什么?有人能给我解释一下吗 #include <stdio.h> int main() { unsigned long int num = 282672; int normalInt = 5; printf(""); return 0; } #包括 int main(){ 无符号长整型数
unsigned long int
是否等于unsigned long
?
在C中++
在我看来,他们是一样的。但我看到一些人仍然在代码中使用无符号长整型。
不明白为什么?有人能给我解释一下吗
#include <stdio.h>
int main() {
unsigned long int num = 282672;
int normalInt = 5;
printf("");
return 0;
}
#包括
int main(){
无符号长整型数=282672;
int normalInt=5;
printf(“”);
返回0;
}
是。
long
只是long int
的简写。这是因为原则上long
只是一个限定符(例如,它也可以用于延长double
数据类型)
<>从C++ ISO标准7.7.5.2节,一个等价类型说明符表:
无符号长int
是正确的类型定义,但是可以忽略int
。是的,它们是相同的。说无符号长int
只是明确地说它是一个int
您可以通过sizeof(unsigned long int)
和sizeof(unsigned long)
希望这有帮助。C99标准的§6.7.2给出了以下类型列表(这只是一个摘录):
,short
,signed short
,或short int
signed short int
,或unsigned short
unsigned short int
,int
或signed
signed 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
,或无符号长整型
无符号长整型
int
是将同一类型指定为signed int
还是将同一类型指定为unsigned int
对<代码>无符号,有符号
,短
,长
,长
都是XXX int
的简单类型说明符
参见本标准中的7.1规范[dcl.spec]:
3[注意:由于默认情况下有符号、无符号、长型和短型都表示int,因此类型名出现在其中一个后面
这些说明符被视为(重新)声明的名称。[示例:
void h(无符号Pc);//void h(无符号int)
void k(无符号整数Pc);//void k(无符号整数)
-结束示例]-结束注释]
和7.1.6.2简单类型说明符[dcl.type.Simple]
虽然这是一个C++问题;是的,C++的问题包括代码<代码> STDIO .H./COD>并使用<代码> Primtf;右:有时候,我只看标签,有时只看代码,也会被这个问题所吸引:不管怎样,这个问题都被标记为C和C++。C标记是在一年多后添加的。正如
long unsigned
和int long unsigned
一样。我不确定“明确声明它是int”是什么意思unsigned long int
和int
是两种不同的类型int
既是关键字又是类型名称;名称unsigned long int
使用关键字int
,但不引用类型int
。我发现在您的表中,除了字符外,每个类型都省略了signed
标记。这是故意的还是表中的错误?不,这不是错误。另请参见和@RikSchaaf-不,这不是一个错误。这些标准规定,无论char
是signed
还是unsigned
类型,都由实现定义。事实上,char
实际上是一种不同于无符号char
和有符号char
的类型。这与所有其他整数类型不同,这些整数类型是有符号的
,除非使用无符号的
关键字。@Sebastian很想知道。我仔细阅读了这两个问题的答案和评论,以了解两者存在的原因。谢谢你的澄清。
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”