
在 C 或 C++ 中,有四种不同的数据类型用于整数类型数据。这四种数据类型是short、int、long 和long long。每种数据类型占用不同的内存空间。大小在不同的体系结构和不同的操作系统中有所不同。有时 int 需要 4 个字节,有时需要 2 个字节。编译器也会发生这种情况。所以我们可以使用交叉编译器。
交叉编译器基本上是一个编译器,它能够为当前平台以外的平台进行编译。
所以如果我们要编译以下内容代码在32位系统和64位系统中,会产生不同的输出。
示例
#includeint main() { printf("Size of int : %ld Bytes", sizeof(int)); printf("Size of long : %ld Bytes
", sizeof(long)); printf("Size of long long : %ld Bytes", sizeof(long long));}
输出
Size of int : 4 BytesSize of long : 4 BytesSize of long long : 8 Bytes
因此,从这个例子中我们可以很容易地了解到,long 数据类型因编译器而异。那么这背后的原因是什么?
立即学习“C语言免费学习笔记(深入)”;
CPU通过提供内存地址寄存器(MAR)的地址来调用主内存(RAM)中的数据。找到该位置后,会将其传输到内存缓冲寄存器 (MBR)。数据被存储到CPU寄存器中以供进一步使用。所以数据总线的大小决定了CPU寄存器的大小。对于32位系统,一次只能调用4字节数据。如果数据大于32bit,则需要两个周期。因此对于较小的数据来说没有任何区别。
以上就是在C语言中需要使用长整型数据类型的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1445450.html
微信扫一扫
支付宝扫一扫