1

我在 ildasm 中分解了以下 C++/CLI 代码:

Managed(char * const a)
{

}

反汇编后的 IL 如下所示:

.method public hidebysig specialname rtspecialname 
        instance void  .ctor(int8 modopt([mscorlib]System.Runtime.CompilerServices.IsSignUnspecifiedByte)* modopt([mscorlib]System.Runtime.CompilerServices.IsConst) modopt([mscorlib]System.Runtime.CompilerServices.IsConst) a) cil managed

删除一些无关紧要的部分:

.method public hidebysig specialname rtspecialname 
        instance void .ctor(int8* modopt(IsConst) modopt(IsConst) a) cil managed

因此,虽然原始代码中只有一个const,但它在 IL 中被发出了两次。为什么呢?

4

0 回答 0