【发布时间】:2021-04-21 17:24:33
【问题描述】:
我正在通过 C# 阅读 CLR 书,上面写着:
IL(中间语言)的最大好处不是它抽象出底层的 CPU。 IL 提供的最大好处是应用程序的健壮性和安全性。在将 IL 编译为本机 CPU 指令时,CLR 执行称为验证的过程。验证检查高级 IL 代码并确保代码所做的一切都是安全的。例如,验证检查是否使用正确数量的参数调用每个方法、传递给每个方法的每个参数是否具有正确的类型、是否正确使用每个方法的返回值、是否每个方法都有返回语句等等
我有点困惑,对于不使用 IL 的 C 或 C++,如果我们定义一个接受一个参数但不带参数调用它的方法,gcc 会抛出一个异常,表明参数太少,所以 C 或 C++ 也可以在没有中间语言概念的情况下提供健壮性和安全性,那么使用 IL 的真正好处是什么?
【问题讨论】:
-
例如,如果您编写 DLL A 来调用 DLL B,然后更改 DLL B,是否会有所帮助?