这种行分隔有何不同?

时间:2018-12-09 03:33:43

标签: c memory

我在创建服务器时使用C语言进行系统编程。有一个导致严重问题的错误,导致无法正确返回结果。 我通过行分隔解决了问题,但不明白为什么这可以解决问题。

导致严重问题的

原始代码

 int Bytes, Size  = cache[index].len;

新代码解决了该问题:

 int Bytes  = cache[index].len;
 Size = Bytes;

我的原始代码和新代码有什么区别?他们不一样吗?

1 个答案:

答案 0 :(得分:2)

它们根本不相同。第一个代码:

int Bytes, Size = cache[index].len;

声明两个Bytes类型的变量SizeintSize初始化为cache[index].len的值,而Bytes未初始化(其值不确定)。

第二个代码(由于我假设这是您的意思,所以我在第二行中插入int使其成为带有初始化的声明):

int Bytes = cache[index].len;
int Size = Bytes;

声明相同类型的两个相同变量;但是在这里,Bytes被初始化为cache[index].len的值,然后Bytes被复制到Size