我最近遇到一个情况,我需要比较两个
文件(黄金和预期)来验证测试结果,即使写入两个
文件的数据是相同的,
文件不匹配.
在进一步的调查中,我发现有一个结构包含一些整数和一个64字节的char数组,并不是所有的char数组的字节在大多数情况下被使用,而数组中的未使用的字段包含随机数据,导致不匹配.
这让我想起了在C/C++中初始化数组是否是好的做法,就像在Java中完成一样.
在使用它们之前初始化内存/变量是一个很好的做法 – 未初始化的变量是通常难以追踪的
错误的大来源.
编写所有数据是一个非常好的主意,将其写入文件格式:它保持文件内容更清洁,以便更容易使用,如果有人错误地尝试“使用”未初始化的数据,那么容易出现问题(记住它可能不仅仅是您自己的代码,将来读取数据),并使文件更加可压缩.
在使用变量之前不要初始化变量的唯一好的原因是在性能关键的情况下,初始化在技术上是“不必要的”,并产生了显着的开销.但在大多数情况下,初始化变量不会造成重大损害(特别是如果它们仅在使用之前立即声明),而是通过消除常见的错误来源,为您节省大量开发时间.