реклама на сайте
подробности

 
 
> Переменная потеряла значение
Beginning
сообщение Nov 23 2007, 10:53
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



Столкнулся со следующей проблемой. Компилятор IAR 4.42. Проект превысил 60 кил, и ни каких особых багов я не замечал. Компилил с опцией NONE(BestDebugSupport). Решил откомпилить с опцией Medium и наткнулся на непонятный баг. Из StartUp код прыгает в main там следующий код:
Main()
{
Unsigned int x;
x=calculate_ram_crc();

//Сдесь x=1, как и должно быть

initialisation();
VICIntEnable |= (1<<5);

//Сдесь x=чему угодно???!!!

Кто нибудь сталкивался с таким багом?


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
alexander55
сообщение Nov 23 2007, 11:12
Сообщение #2


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(Beginning @ Nov 23 2007, 13:53) *

А x используется дальше где-нибудь ?
Go to the top of the page
 
+Quote Post
scifi
сообщение Nov 23 2007, 12:52
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(alexander55 @ Nov 23 2007, 14:12) *
А x используется дальше где-нибудь ?

Я бы спросил точнее: значение переменной x, полученное в результате вызова calculate_ram_crc(), где-нибудь используется? Если нет, то компилятор имеет полное право его выкинуть.
Цитата(Beginning @ Nov 23 2007, 15:40) *
Чёта я не понял? А куда мая предыдущая месага делась????

Может быть, там были матюки? Если так, то отмодерили.
Цитата(Beginning @ Nov 23 2007, 15:40) *
Х - так называемая расходная переменная

Совет по стилю: вместо одной расходной переменной лучше применять разные, чтобы имя переменной в каждой отдельной ситуации поясняло, зачем она используется. Работа компилятора - сделать код не хуже, чем при использовании одной переменной. Ему это вполне по силам.
Цитата(Beginning @ Nov 23 2007, 15:40) *
она дальше в main в сотни случаях пользуется.

Ещё один совет по стилю: если функция раздулась до сотни строк, значит её надо разбивать на подфункции.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 06:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01364 секунд с 7
ELECTRONIX ©2004-2016