Есть конструкция
if ( rawCaption[nPos+1] == '#')
в il-е она выглядит как
IL_0020: ldarg.0
IL_0021: ldloc.0
IL_0022: ldc.i4.1
IL_0023: add
IL_0024: callvirt instance char [mscorlib]System.String::get_Chars(int32)
IL_0029: ldc.i4.s 35
IL_002b: bne.un.s IL_0045
Вопрос номер раз: почему произощло автоувеличение размерной переменной?
2: как я могу продотвратить подобный произвол компилятора?
Заранее спасибо.
P.s. Есть предположение, что компилятор сначала вычислил значение переменной, а потом сделал копию для функции, но тогда остается в силе 2й вопрос..
Здравствуйте, <Аноним>, Вы писали:
Спасиб, я сам уже разобрался .. там баг с дебаггером студии был.
хотя со стеком я проглядел)
А>Здравствуйте, Mrpike, Вы писали:
M>>Вопрос номер раз: почему произощло автоувеличение размерной переменной?
M>>2: как я могу продотвратить подобный произвол компилятора?
А>не совсем понятно, где происходит автоувеличение (nPos — ???) все вычисления проводятся через стек и значение nPos не изменяется.... << RSDN@Home 1.1 beta 2 >>