在处理最近的一个项目时,一位客户 QA 代表拜访了我,他问了我一个我以前没有真正考虑过的问题:
您如何知道您使用的编译器生成的机器代码与 c 代码的功能完全匹配并且编译器是完全确定的?
对于这个问题,我完全没有回答,因为我一直认为编译器是理所当然的。它接收代码并输出机器代码。我怎样才能开始测试编译器实际上并没有添加我没有要求的功能?或者更危险地以与我期望的方式略有不同的方式实现代码?
我知道这对每个人来说可能并不是一个真正的问题,实际上答案可能只是......“你已经过了桶并处理它”。但是,在嵌入式环境中工作时,您隐含地信任您的编译器。我如何向自己和 QA 证明我这样做是正确的?