在C ++中int
,signed int
和signed
的数据类型之间是否有区别?
和:如果它们要处理所有相同的内存空间(在内存分配的上下文中它们是等效的),则它们之间的编译/运行时性能是否存在差异(这对于程序而言当然并不重要)类似于以下内容,但是在初始化该类型的数百个变量时呢?
我对其中的任何一项进行了测试,以查找是否有明显差异或任何编译器警告或错误:
使用signed int
:
#include <iostream>
int main()
{
signed int a = 5;
std::cout << "The number entered is " << a << std::endl;
return 0;
}
使用int
:
#include <iostream>
int main()
{
int a = 5;
std::cout << "The number entered is " << a << std::endl;
return 0;
}
使用signed
:
#include <iostream>
int main()
{
signed a = 5;
std::cout << "The number entered is " << a << std::endl;
return 0;
}
输出对于所有测试都是等效的:
The number entered is 5
但是这并不意味着它在内存存储和性能方面必须相等。
提前感谢。
您可以阅读有关指定整数类型here的规则。
第一个相关规则是,如果您不提供signed
或unsigned
,则编译器会假定signed
。
signed
-目标类型将带有符号表示(如果省略,则为默认值)
另一个规则是,如果您提供signed
或unsigned
并且没有大小,则假定为int
。因此int
,signed int
和signed
在功能上完全相同。
int
-基本整数类型。如果使用下面列出的任何修饰符,则可以省略关键字int。