我在创建服务器时使用C语言进行系统编程。有一个导致严重问题的错误,导致无法正确返回结果。 我通过行分隔解决了问题,但不明白为什么这可以解决问题。
导致严重问题的原始代码:
int Bytes, Size = cache[index].len;
新代码解决了该问题:
int Bytes = cache[index].len;
Size = Bytes;
我的原始代码和新代码有什么区别?他们不一样吗?
答案 0 :(得分:2)
它们根本不相同。第一个代码:
int Bytes, Size = cache[index].len;
声明两个Bytes
类型的变量Size
和int
; Size
初始化为cache[index].len
的值,而Bytes
未初始化(其值不确定)。
第二个代码(由于我假设这是您的意思,所以我在第二行中插入int
使其成为带有初始化的声明):
int Bytes = cache[index].len;
int Size = Bytes;
声明相同类型的两个相同变量;但是在这里,Bytes
被初始化为cache[index].len
的值,然后Bytes
被复制到Size
。