c语言long int怎么定义,当我在C中将long int赋值给int时,会发生什么?

在C语言中,作者发现`int`和`long`在他们的64位Intel Core i5/Windows 7系统上占用相同的空间。他们对于在`int`不能容纳的数值时应如何使用`long`感到困惑。文章讨论了不同数据类型的大小,以及在不同数据类型间转换的安全性和可能的结果。主要关注点在于`int`到`long`的转换是否需要显式转换,以及转换过程中可能遇到的问题。
摘要由CSDN通过智能技术生成

在最近的家庭作业中,我被告知使用长变量来存储结果,因为它可能是一个大数字。

我决定检查是否真的对我来说,在我的系统(intel core i5 / 64位Windows 7 / gnu gcc编译器),并发现以下代码:

printf("sizeof(char) => %d\n", sizeof(char));

printf("sizeof(short) => %d\n", sizeof(short));

printf("sizeof(short int) => %d\n", sizeof(short int));

printf("sizeof(int) => %d\n", sizeof(int));

printf("sizeof(long) => %d\n", sizeof(long));

printf("sizeof(long int) => %d\n", sizeof(long int));

printf("sizeof(long long) => %d\n", sizeof(long long));

printf("sizeof(long long int) => %d\n", sizeof(long long int));

产生以下输出:

sizeof(char) => 1

sizeof(short) => 2

sizeof(short int) => 2

sizeof(int) => 4

sizeof(long) => 4

sizeof(long int) => 4

sizeof(long long) => 8

sizeof(long long int) => 8

换句话说,在我的系统上,int和long是相同的,并且任何对于int来说,太大都不会持有,将太大,长期持有。

作业分配本身不是这里的问题。我不知道如何,在一个系统上int < long,我应该分配一个int到long? 我知道there are numerous closely related这个问题的事实,但我觉得这些答案不提供我完全理解什么将在或可能发生的过程。

基本上我想弄清楚下面:

>我应该在分配之前将long转换为int,或者从长到long

是不是一个不同的数据类型,而只是一个修饰符,它会

认为不伤害直接分配?

>在long> int?将结果是

未定义(或不​​可预测)或它会导致额外的部分

变量要省略?

>从long到int如何在C中工作?

>从long到int的赋值在C中是如何工作的

使用铸件?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值