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