Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

Помощь в WinAvr

Непрочитано 15.10.2013, 15:46  
AGAT0365
Прописка
 
Регистрация: 17.02.2009
Сообщений: 154
Сказал спасибо: 14
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
AGAT0365 на пути к лучшему
По умолчанию Re: Помощь в WinAvr

Доброго всем времени суток, объясните в чём дело
void slojim_str(char* sdc){
fg=sizeof(sdc);
...................
..................
................}
slojim_str(read_SMS);
При таком построении кода функция sizeof выдаёт неправельный результат,
и как это исправить?
Реклама:
AGAT0365 вне форума  
Непрочитано 15.10.2013, 19:12  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Помощь в WinAvr

Сообщение от AGAT0365 Посмотреть сообщение
функция sizeof выдаёт неправельный результат
Этого не может быть, результат наверняка правильный, а вот ожидания - наверняка ошибочные.
Сообщение от AGAT0365 Посмотреть сообщение
и как это исправить?
Почитать про sizeof и убедиться, что всё верно.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 16.10.2013, 01:06  
TEHb
Почётный гражданин KAZUS.RUN
 
Аватар для TEHb
 
Регистрация: 27.06.2005
Сообщений: 1,387
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
TEHb на пути к лучшему
По умолчанию Re: Помощь в WinAvr

Сообщение от AGAT0365 Посмотреть сообщение
fg=sizeof(sdc);
заменить на
fg=strlen(sdc);
TEHb вне форума  
Непрочитано 16.10.2013, 17:08  
AGAT0365
Прописка
 
Регистрация: 17.02.2009
Сообщений: 154
Сказал спасибо: 14
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
AGAT0365 на пути к лучшему
По умолчанию Re: Помощь в WinAvr

Сообщение от TEHb Посмотреть сообщение
заменить на
fg=strlen(sdc);
Спасибо, но это практически тоже самое, как я понимаю, только не учитывает последнию литеру '/0'.
AGAT0365 вне форума  
Непрочитано 16.10.2013, 17:23  
TEHb
Почётный гражданин KAZUS.RUN
 
Аватар для TEHb
 
Регистрация: 27.06.2005
Сообщений: 1,387
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
TEHb на пути к лучшему
По умолчанию Re: Помощь в WinAvr

Сообщение от AGAT0365 Посмотреть сообщение
Спасибо, но это практически тоже самое, как я понимаю, только не учитывает последнию литеру '/0'.
Нет, это совершенно не то.
sizeof() вычисляется на этапе компиляции и возращает размер объекта. В данном случае, видимо, всегда будет значение 2 - размер указателя в AVR.
strlen() же шагает по памяти и считает байты, пока не дойдёт до 0.
TEHb вне форума  
Сказали "Спасибо" TEHb
AGAT0365 (16.10.2013)
Непрочитано 16.10.2013, 18:34  
AGAT0365
Прописка
 
Регистрация: 17.02.2009
Сообщений: 154
Сказал спасибо: 14
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
AGAT0365 на пути к лучшему
По умолчанию Re: Помощь в WinAvr

Сообщение от TEHb Посмотреть сообщение
Нет, это совершенно не то.
sizeof() вычисляется на этапе компиляции и возращает размер объекта. В данном случае, видимо, всегда будет значение 2 - размер указателя в AVR.
strlen() же шагает по памяти и считает байты, пока не дойдёт до 0.
Теперь понятно,спасибо.Всё как мне и надо.
AGAT0365 вне форума  
Непрочитано 27.10.2013, 16:08  
AGAT0365
Прописка
 
Регистрация: 17.02.2009
Сообщений: 154
Сказал спасибо: 14
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
AGAT0365 на пути к лучшему
По умолчанию Re: Помощь в WinAvr

Доброго времени сутук.
void pre_priem( volatile char* kodd){}
вопрос в том что возможно использования квалификатора volatile
в данном случае, мне надо что бы компилятор обращал внимание на указатель kodd?
AGAT0365 вне форума  
Непрочитано 27.10.2013, 18:20  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Помощь в WinAvr

Попробую предположить, в чём состоял вопрос.
Итак:
  1. Использование возможно.
  2. Компилятор на переменную kodd внимание обратит.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 28.10.2013, 15:41  
AGAT0365
Прописка
 
Регистрация: 17.02.2009
Сообщений: 154
Сказал спасибо: 14
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
AGAT0365 на пути к лучшему
По умолчанию Re: Помощь в WinAvr

Сообщение от tempora Посмотреть сообщение
Попробую предположить, в чём состоял вопрос.
Итак:Использование возможно.
Спасибо, то что я хотел уточнить.
AGAT0365 вне форума  
Непрочитано 28.10.2013, 16:17  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Помощь в WinAvr

Сообщение от AGAT0365 Посмотреть сообщение
Спасибо
А для чего нужен такой необычный ход?
__________________
There's always more than one way to skin a cat.
tempora вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подниму тему WinAVR vs IAR oleg110592 Микроконтроллеры, АЦП, память и т.д 5 24.10.2015 14:06
На WinAVR + AVR Studio c CVAVR Vetal-soft Embedd С 87 03.03.2013 20:31
WinAVR: Cи vs C++ vovan_zh Микроконтроллеры, АЦП, память и т.д 3 08.10.2010 23:06
WinAVR не нравится символ '\' vovan_zh Микроконтроллеры, АЦП, память и т.д 10 10.09.2010 20:48
помогите начинающему по WinAVR umkamaks Микроконтроллеры, АЦП, память и т.д 4 05.05.2010 21:01


Часовой пояс GMT +4, время: 17:47.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.