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

 
 
> IAR и SPRINTF, Проблемма с sprintf
Vladimir_J
сообщение Dec 2 2009, 09:38
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 74
Регистрация: 9-01-07
Из: Украина
Пользователь №: 24 228



Доброе время суток smile.gif
У меня возникла проблема. Среда IAR 5.30.

Код:
sprintf( CRC, "%i", _CRC);

_CRC = 135

а в CRC кладется -12851
сам unsigned char CRC[4];

В чем проблема, могет в настройках проекта, но во вкладке library option все перепробовал sad.gif

Плиз подскажите в чем дело .....
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
scifi
сообщение Dec 2 2009, 14:03
Сообщение #2


Гуру
******

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



Цитата(Vladimir_J @ Dec 2 2009, 12:38) *
_CRC = 135

Какой тип у переменной _CRC? По правилам должен быть int.
Go to the top of the page
 
+Quote Post
Vladimir_J
сообщение Dec 2 2009, 15:10
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 74
Регистрация: 9-01-07
Из: Украина
Пользователь №: 24 228



Цитата(scifi @ Dec 2 2009, 18:03) *
Какой тип у переменной _CRC? По правилам должен быть int.


Тип переменной _CRC - int smile.gif, и стэк - 0x80.
Не знаю почему, не работает sad.gif.
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Dec 2 2009, 15:24
Сообщение #4


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(Vladimir_J @ Dec 2 2009, 18:10) *
Тип переменной _CRC - int smile.gif,

символы с подчеркиванием считаются компилятором особыми (в зависимости от реализации). Попробуйте назвать переменную по-другому и замените в формате
Код
i
на
Код
d
. По стандарту все равно, но ...


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Dec 3 2009, 09:02
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Цитата(mdmitry @ Dec 2 2009, 18:24) *
символы с подчеркиванием считаются компилятором особыми (в зависимости от реализации). Попробуйте назвать переменную по-другому

А нельзя ли подробнее - какие грабли имеются в данном конкретном случае?

Насколько я понимаю, вариантов может быть два:
- такого символа в библиотеках нет, и использовать его - просто некрасиво
- такой символ есть, и вылезет предупреждение "переопределение".


А вообще, в случае неадекватного поведения программы увеличить стек и посмотреть, что будет wink.gif совсем недолго...
Разве что не забыть ПОТОМ разобраться...


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Dec 3 2009, 11:24
Сообщение #6


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(esaulenka @ Dec 3 2009, 12:02) *
Насколько я понимаю, вариантов может быть два:
- такого символа в библиотеках нет, и использовать его - просто некрасиво
- такой символ есть, и вылезет предупреждение "переопределение".

Не только в библиотеках, но и символы самого компилятора. Я не знаю, все ли предупреждения автор включил. А может выключил, чтобы не мешали?
Цитата
А нельзя ли подробнее - какие грабли имеются в данном конкретном случае?

В данном случае это мое предположение, основанное на личном опыте.
Давно имел неосторожность названия переменных и функций начинать с подчеркивания (еще хуже с двух). Проблемы с именами получил мгновенно. Компилятор свои внутренние названия с подчеркиваний начинает, подробности в документации по gcc, для IAR точно не уверен.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post



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

 


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


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