为什么IsConst在char * const a中发出两次

时间:2014-12-02 20:01:58

标签: c++-cli clr cil ildasm

我在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中发出两次。为什么会这样?

0 个答案:

没有答案