我在创建服务器时用 C 语言进行系统编程。有一个错误导致无法正确返回结果的严重问题。我通过线分离解决了这个问题,但不明白为什么这解决了这个问题。
导致严重问题的原始代码:
int Bytes, Size = cache[index].len;
解决问题的新代码:
int Bytes = cache[index].len;
Size = Bytes;
我的原始代码和新代码有什么区别?它们不是相同的吗?
它们根本不一样。第一个代码:
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
.