Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> программа "проскакивает" кусок кода 
:(
    Опции темы
MaxS
Дата 6.5.2010, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 28.2.2008

Репутация: нет
Всего: нет



Здравствуйте! 
Вопрос из серии "а почему не работает", возможно и к .net не относящийся.
Пишу на managet c++, написал кусок кода для тестирования функций и обнаружил странную  ошибку.  Программа "проскакивает" часть строк, хотя не должна:
Код

//вот этот код, должен был проверить класс CripXtea.
//пока все работает
array<System::Byte>^ k = gcnew array<Byte>(4);
k[0] = 1;
k[1] = 2;
k[2] = 3;
k[3] = 4;
CripXtea tester(k,10); //это последняя строчка которую выполняет программа,
                                   // класс создается и далее наченает выполняться...
Int64 att = 123;
Int64 atc; 
atc = tester.XteaEnc(att);
Int64 atd;
atd = tester.XteaDec(atc);
PostPro::Form1^ form123 = form123->GetInstance(); //... вот эта строчка! 
System::String^ st = gcnew System::String("out=");
st +=atc+"-"+atd;//строка формируется: out=0-0, хотя atc и  atd и созданы то небыли!
form123->PrintInMes(st);

Понимаю, что наверняка сам дурак, но объясните - почему? smile

Это сообщение отредактировал(а) MaxS - 6.5.2010, 20:23
PM MAIL   Вверх
A5uKa
Дата 7.5.2010, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: 3
Всего: 16



какой класс создаётся и что начЕнает выполняться. 

Цитата

вот эта строчка!
 - что нитак со строчкой ?

Ничего вообще не понимаю...  smile 
PM   Вверх
Pilger
Дата 7.5.2010, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 10.5.2008
Где: Германия

Репутация: нет
Всего: нет



Цитата(A5uKa @ 7.5.2010,  14:40)
какой класс создаётся и что начЕнает выполняться. 

Код

array<System::Byte>^ k = gcnew array<Byte>(4);
k[0] = 1;
k[1] = 2;
k[2] = 3;
k[3] = 4;
CripXtea tester(k,10); //это последняя строчка которую выполняет программа,
                                   // класс создается и далее наченает выполняться...

PostPro::Form1^ form123 = form123->GetInstance(); //... вот эта строчка! 
System::String^ st = gcnew System::String("out=");
st +=atc+"-"+atd;//строка формируется: out=0-0, хотя atc и  atd и созданы то небыли!
form123->PrintInMes(st);


Он хочет сказать, что вот этот код

Код

Int64 att = 123;
Int64 atc; 
atc = tester.XteaEnc(att);
Int64 atd;
atd = tester.XteaDec(atc);


не выполняется


Это сообщение отредактировал(а) Pilger - 7.5.2010, 14:52


--------------------
Ein Leben nach der Schleife existiert, nur wenn die Schleife terminiert.
PM MAIL ICQ   Вверх
Sartorius
Дата 7.5.2010, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: 1
Всего: 37



MaxS, трассировка вам поможет
PM MAIL ICQ   Вверх
A5uKa
Дата 7.5.2010, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: 3
Всего: 16



Цитата(Pilger @ 7.5.2010,  14:51)
Цитата(A5uKa @ 7.5.2010,  14:40)
какой класс создаётся и что начЕнает выполняться. 


Он хочет сказать, что вот этот код

Код

Int64 att = 123;
Int64 atc; 
atc = tester.XteaEnc(att);
Int64 atd;
atd = tester.XteaDec(atc);


не выполняется

А если убрать код вокруг этого выполняется ? 
PM   Вверх
MaxS
Дата 7.5.2010, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 28.2.2008

Репутация: нет
Всего: нет



Как раз трассировкой я и обнаружил, что он их проскакивает.
Проблема была в том, что компилировал как релиз, при компиляции в дебаге он все строчки проходит. Хотя странно - почему он в релизе "лишний" код не компилирует?
PM MAIL   Вверх
Sartorius
Дата 7.5.2010, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: 1
Всего: 37



Проверь тогда Xtea... методы. Скорее всего они константу возвращают всегда и компилятор это оптимизировал.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0867 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.