Giz*_*zmo 6 c c++ embedded policy standards
我们的讲师告诉我们,在完成我们的任务时,我们只允许使用C++ 98/C99标准,通过为编译器指定正确的标志,我们可以确保不违反此规则.
我知道这是因为人们可以学习"真正的"C或C++,无论他们选择哪一种,并且在没有任何新语言功能帮助的情况下运用这项技能(我不同意,但我是谁在争论).
在向我的讲师询问他为什么回答这个规则时(在知道我对上述答案不满意之后):"因为像嵌入式设备一样的ASML这样的老公司有旧的代码库,在切换到C11/C时可能会破坏它们++ 11).
我要求一个代码的特定现实世界/实际例子,它在C99/C11(或C++ 98/C++ 11)中编译,是标准兼容的(C99/C++ 98),但是行为上在二进制形式时非常不同 - 总结一下,问题没有得到解答.如果公司坚持旧编译器和标准的说法是正确的,那么有人可以提供我想要为自己看到的这样一段代码吗?
大公司的产品不需要来自单一代码库。代码库可能依赖于许多其他库(包括第 3 方)。
除非且直到使用该版本的编译器编译其所有依赖项,否则无法使用最新的编译器编译产品代码。(至少静态库是这样)
因此,一般来说,对于具有大量依赖项的大型产品来说,很难迁移到最新版本的编译器。此外,在迁移到最新的编译器后,还会产生大量的测试开销。
仅当 ROI(投资回报率)良好时,管理层才会同意执行上述操作,而对于遗留代码而言,这样做的情况很少见。