如果我在源代码中插入注释,它的二进制文件 MD5 会被更改吗?

Dio*_*ogo 2 c c# c++ java md5

我只是想知道......如果我正在考虑为我销售的软件的每个客户创建不同的版本,我可以使用 MD5 检查每个版本,只需更改源代码中的注释并重新编译吗?我的意思是,C++、C# 或 java 代码中的 ## 注释会更改二进制 MD5 吗?

Dav*_*d Z 5

注释会在编译过程的早期(或之前)被删除,因此插入注释不会更改已编译二进制文件的哈希值。

唯一的例外(我能想到的)是您的二进制文件是否包含行号,该行号可能会根据注释而更改。通常,当您在调试模式下编译时会发生这种情况,但您也可以使用__LINE__C++ 中的宏之类的方式强制执行此操作。但即使在这种情况下,注释的内容也是无关紧要的,只与它占用多少行无关(因此您不妨仅使用空行来实现此目的)。此外,发布的软件可能不应该包含该信息。

  • 断言实际上是仅在调试模式下出现的构造的典型示例。 (2认同)