C# как предотвратить автоувеличение переменной?
От: Mrpike  
Дата: 01.11.03 23:10
Оценка:
Есть конструкция
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й вопрос..
Re: C# как предотвратить автоувеличение переменной?
От: Аноним  
Дата: 02.11.03 06:31
Оценка: +1
Здравствуйте, Mrpike, Вы писали:

M>Вопрос номер раз: почему произощло автоувеличение размерной переменной?

M>2: как я могу продотвратить подобный произвол компилятора?

не совсем понятно, где происходит автоувеличение (nPos — ???) все вычисления проводятся через стек и значение nPos не изменяется.
Re[2]: C# как предотвратить автоувеличение переменной?
От: Mrpike  
Дата: 02.11.03 07:22
Оценка:
Здравствуйте, <Аноним>, Вы писали:

Спасиб, я сам уже разобрался .. там баг с дебаггером студии был.
хотя со стеком я проглядел)

А>Здравствуйте, Mrpike, Вы писали:


M>>Вопрос номер раз: почему произощло автоувеличение размерной переменной?

M>>2: как я могу продотвратить подобный произвол компилятора?

А>не совсем понятно, где происходит автоувеличение (nPos — ???) все вычисления проводятся через стек и значение nPos не изменяется.
... << RSDN@Home 1.1 beta 2 >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.