在C中具有相同大小的两个不同类型之间有什么区别?

苏So

如果我分别在两个相同的64位计算机上运行以下程序,然后逐字节比较它们的整个内存,我会看到什么区别?

int main(int argc, char *argv[])
{
    unsigned int x=1;
    getc(stdin);
    return 0;
}

int main(int argc, char *argv[])
{
    unsigned long x=1;
    getc(stdin);
    return 0;
}

如果两个x不是简单类型,如果它们是两个具有相同结构,相同内容和相同大小的不同名称结构,我会看到什么区别?


好,让我澄清一下问题,现在程序更改为

unsigned int x=1;
printf("%d",sizeof x);
return 0;

unsigned long x=1;
printf("%d",sizeof x);
return 0;

我的编译器的两个输出是4,现在使用了x,因此没有优化

现在我的问题是,如果您告诉我有一些区别,那么内存的区别在哪里?它们在内存中的某处应该是不同的,因为类型明显不同。但是哪里?我找不到

如果您告诉我,记忆力没有差异。为什么没有区别。某些内容应存储在内存中的某个位置。否则,我认为计算机无法知道地址是变量以及变量是什么。

海藻油

取决于编译器。大多数64位编译器使用32位int和64位long

32位编译器通常是32位int和32位long

16位编译器通常是16位int,32位long和16位short

除非特定的编译器文档如此说明,否则不能保证所有这些。Standard只说sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long),即char1字节。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有相同数量的离散属性的两个相同类型的文件是否具有相同的大小?

来自分类Dev

C ++中两个'char *'强制转换之间有什么区别

来自分类Dev

Java:比较两个具有相同值的不同类型的对象,返回true

来自分类Dev

指向相同内存的具有不同类型的两个二维数组

来自分类Dev

为什么在使用动态类型和动态绑定时,两个具有相同名称(属于不同类)的方法应具有相同的原型?

来自分类Dev

为什么在使用动态类型和动态绑定时,两个具有相同名称(属于不同类)的方法应具有相同的原型?

来自分类Dev

这两个if之间有什么区别?

来自分类Dev

这两个语句之间有什么区别?

来自分类Dev

for循环的两个代码之间有什么区别?

来自分类Dev

for循环的两个代码之间有什么区别?

来自分类Dev

以下两个声明之间有什么区别?

来自分类Dev

两个不同版本的VLC夜间构建之间有什么区别?

来自分类Dev

两个呈现的类之间有什么区别?它们的工作方式不同吗?

来自分类Dev

Kotlin中具有不同类型参数数量的两个函数

来自分类Dev

Kotlin中具有不同类型参数数量的两个函数

来自分类Dev

在XSD中,两个元素可以具有不同的名称但具有相同的类型吗?

来自分类Dev

在XSD中,两个元素可以具有不同的名称但具有相同的类型吗?

来自分类Dev

如何通过DI注入两个相同类型但具有一个属性不同的对象?

来自分类Dev

在C#中,使用刻度和按原样比较两个日期之间有什么区别

来自分类Dev

在C#中,使用刻度和按原样比较两个日期之间有什么区别

来自分类Dev

F#中这两个函数之间有什么区别吗?

来自分类Dev

F#中这两个函数之间有什么区别吗?

来自分类Dev

R中这两个语句之间有什么区别?

来自分类Dev

这两个C函数调用之间有什么区别?

来自分类Dev

这两个c#抽象类之间有什么区别?

来自分类Dev

这两个C ++片段之间有什么区别?

来自分类Dev

就处理内存而言,这两个C函数之间有什么区别?

来自分类Dev

不同类型的utf-8有什么区别?

来自分类Dev

Java模板,如何使用两个具有相同名称和不同类型的类

Related 相关文章

  1. 1

    具有相同数量的离散属性的两个相同类型的文件是否具有相同的大小?

  2. 2

    C ++中两个'char *'强制转换之间有什么区别

  3. 3

    Java:比较两个具有相同值的不同类型的对象,返回true

  4. 4

    指向相同内存的具有不同类型的两个二维数组

  5. 5

    为什么在使用动态类型和动态绑定时,两个具有相同名称(属于不同类)的方法应具有相同的原型?

  6. 6

    为什么在使用动态类型和动态绑定时,两个具有相同名称(属于不同类)的方法应具有相同的原型?

  7. 7

    这两个if之间有什么区别?

  8. 8

    这两个语句之间有什么区别?

  9. 9

    for循环的两个代码之间有什么区别?

  10. 10

    for循环的两个代码之间有什么区别?

  11. 11

    以下两个声明之间有什么区别?

  12. 12

    两个不同版本的VLC夜间构建之间有什么区别?

  13. 13

    两个呈现的类之间有什么区别?它们的工作方式不同吗?

  14. 14

    Kotlin中具有不同类型参数数量的两个函数

  15. 15

    Kotlin中具有不同类型参数数量的两个函数

  16. 16

    在XSD中,两个元素可以具有不同的名称但具有相同的类型吗?

  17. 17

    在XSD中,两个元素可以具有不同的名称但具有相同的类型吗?

  18. 18

    如何通过DI注入两个相同类型但具有一个属性不同的对象?

  19. 19

    在C#中,使用刻度和按原样比较两个日期之间有什么区别

  20. 20

    在C#中,使用刻度和按原样比较两个日期之间有什么区别

  21. 21

    F#中这两个函数之间有什么区别吗?

  22. 22

    F#中这两个函数之间有什么区别吗?

  23. 23

    R中这两个语句之间有什么区别?

  24. 24

    这两个C函数调用之间有什么区别?

  25. 25

    这两个c#抽象类之间有什么区别?

  26. 26

    这两个C ++片段之间有什么区别?

  27. 27

    就处理内存而言,这两个C函数之间有什么区别?

  28. 28

    不同类型的utf-8有什么区别?

  29. 29

    Java模板,如何使用两个具有相同名称和不同类型的类

热门标签

归档