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