[签名vs.签名int与C ++中的int?

问题描述 投票:0回答:1

在C ++中intsigned intsigned的数据类型之间是否有区别?


和:如果它们要处理所有相同的内存空间(在内存分配的上下文中它们是等效的),则它们之间的编译/运行时性能是否存在差异(这对于程序而言当然并不重要)类似于以下内容,但是在初始化该类型的数百个变量时呢?


我对其中的任何一项进行了测试,以查找是否有明显差异或任何编译器警告或错误:

使用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

但是这并不意味着它在内存存储和性能方面必须相等。

提前感谢。

c++ types int difference signed
1个回答
3
投票

您可以阅读有关指定整数类型here的规则。

第一个相关规则是,如果您不提供signedunsigned,则编译器会假定signed

signed-目标类型将带有符号表示(如果省略,则为默认值)

另一个规则是,如果您提供signedunsigned并且没有大小,则假定为int。因此intsigned intsigned在功能上完全相同。

int-基本整数类型。如果使用下面列出的任何修饰符,则可以省略关键字int。

© www.soinside.com 2019 - 2024. All rights reserved.