|
процедура с указателем на строку в памяти программ, помогите разобраться |
|
|
|
Dec 24 2008, 14:39
|

Местный
  
Группа: Участник
Сообщений: 249
Регистрация: 31-10-05
Из: Украина Нетешин
Пользователь №: 10 344

|
Здраствуйте. Ткните где не так кто знает пожалуйста Код unsigned char blabla[] = "blablabla"; /// текст и все такое void find (unsigned char *findbuff) { unsigned int i; while (*findbuff != '\0') { USART0_OutBuf[i++] = *findbuff; findbuff++; } } int main (void) { find (blabla); } т.е. программа какие то данные из ОЗУ грузит в процедуру и что то так с ними делает Скажите пожалуйста как такое же провернуть со строкой типа Код unsigned char PROGMEM blabla[] = "blablabla"; Спасибо
|
|
|
|
|
 |
Ответов
|
Dec 24 2008, 16:27
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(chief_olimp @ Dec 24 2008, 19:39)  Скажите пожалуйста как такое же провернуть со строкой типа Код unsigned char PROGMEM blabla[] = "blablabla"; Во-первых, строка должна заканчиваться завершающим нулем. Код unsigned char PROGMEM blabla[] = "blablabla\0"; А во-вторых, перед выводом нужно указателю присвоить значение ее адреса, явно сделав преобразование типа. Код findbuff=(unsigned char *)&blabla[0];
|
|
|
|
|
Dec 24 2008, 18:21
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(rezident @ Dec 24 2008, 19:27)  Во-первых, строка должна заканчиваться завершающим нулем. Код unsigned char PROGMEM blabla[] = "blablabla\0"; А во-вторых, перед выводом нужно указателю присвоить значение ее адреса, явно сделав преобразование типа. Код findbuff=(unsigned char *)&blabla[0]; Ни во-первых ни во-вторых делать не надо. Все СИ строки имеют завершающий ноль по определению. Имя одномерного масссива также является указателем на его первый элемент, так зачем же плодить промежуточные переменные. Приводить тип не надо, а надо использовать тип char для строк и char* для аргумента функции (ну или const char как в данном случае). На мой взгляд unsigned char следует использовать только как альтернативу uint8_t, а элементы строк, т.е. буквы-символы в подавляющем большинстве имеют тип char, на то он и нужен.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
Сообщений в этой теме
chief_olimp процедура с указателем на строку в памяти программ Dec 24 2008, 14:39 rokhan И что ты хочешь найти?
Если ты хочешь найти стро... Dec 24 2008, 15:03  rezident Цитата(demiurg_spb @ Dec 24 2008, 23:21) ... Dec 24 2008, 19:49   demiurg_spb Цитата(rezident @ Dec 24 2008, 22:49) Тео... Dec 25 2008, 10:24    HARMHARM Цитата(demiurg_spb @ Dec 25 2008, 12:24) ... Dec 25 2008, 11:14     zltigo Цитата(HARMHARM @ Dec 25 2008, 14:14) Бол... Dec 25 2008, 11:37     demiurg_spb Цитата(HARMHARM @ Dec 25 2008, 14:14) Бол... Dec 25 2008, 12:11      HARMHARM Цитата(demiurg_spb @ Dec 25 2008, 14:11) ... Dec 25 2008, 12:49    rezident Цитата(demiurg_spb @ Dec 25 2008, 15:24) ... Dec 25 2008, 12:35     demiurg_spb Цитата(rezident @ Dec 25 2008, 15:35) Я с... Dec 25 2008, 13:37      zltigo Цитата(demiurg_spb @ Dec 25 2008, 16:37) ... Dec 25 2008, 14:31       demiurg_spb Цитата(zltigo @ Dec 25 2008, 17:31) И за ... Dec 25 2008, 16:50      rezident Цитата(demiurg_spb @ Dec 25 2008, 18:37) ... Dec 25 2008, 15:00       demiurg_spb Цитата(rezident @ Dec 25 2008, 18:00) Буд... Dec 25 2008, 16:38        zltigo Цитата(demiurg_spb @ Dec 25 2008, 19:38) ... Dec 25 2008, 16:49        zltigo Цитата(demiurg_spb @ Dec 25 2008, 19:38) ... Dec 25 2008, 16:54         demiurg_spb Цитата(zltigo @ Dec 25 2008, 19:54) Само ... Dec 25 2008, 17:27          zltigo Цитата(demiurg_spb @ Dec 25 2008, 20:27) ... Dec 25 2008, 17:34           demiurg_spb Цитата(zltigo @ Dec 25 2008, 20:34) Естес... Dec 25 2008, 17:43            zltigo Цитата(demiurg_spb @ Dec 25 2008, 20:43) ... Dec 26 2008, 13:54             demiurg_spb Цитата(zltigo @ Dec 26 2008, 16:54) Не по... Dec 27 2008, 10:03              Сергей Борщ Цитата(demiurg_spb @ Dec 27 2008, 12:03) ... Dec 27 2008, 11:15               demiurg_spb Цитата(Сергей Борщ @ Dec 27 2008, 14:15) ... Dec 28 2008, 22:04              rezident Цитата(demiurg_spb @ Dec 27 2008, 15:03) ... Dec 27 2008, 22:00   alx2 Цитата(rezident @ Dec 25 2008, 00:49) Тео... Dec 25 2008, 11:15 Tiro Чип AVR с компилятором WinAVR?
Тогда прочтите здес... Dec 24 2008, 16:42 chief_olimp дело в том что я хочу каждый раз используя одну и ... Dec 24 2008, 16:49 defunct Цитата(chief_olimp @ Dec 24 2008, 18:49) ... Dec 24 2008, 17:02 WHALE Я решал вашу задачу так:
Кодflash char *flash STRI... Dec 24 2008, 17:34 chief_olimp в вашем случае насколько я понял сравниваются стро... Dec 24 2008, 17:43 WHALE Цитата(chief_olimp @ Dec 24 2008, 20:43) ... Dec 24 2008, 20:03 _Pasha Код#define Str const unsigned char PROGMEM
Str bla... Dec 24 2008, 18:24 demiurg_spb Цитата(_Pasha @ Dec 24 2008, 21:24) Код#d... Dec 24 2008, 18:31 rokhan 2chief_olimp : простите. но то что вы написали - э... Dec 24 2008, 18:28 chief_olimp Цитата(rokhan @ Dec 24 2008, 22:28) 2chie... Dec 24 2008, 20:15 _Pasha Цитата(demiurg_spb @ Dec 24 2008, 22:31) ... Dec 24 2008, 18:49 rokhan Я просто в шоке.
думаю мои и быстрее и веселее
Ц... Dec 25 2008, 08:23 zltigo Цитата(rokhan @ Dec 25 2008, 11:23) думаю... Dec 25 2008, 08:54 chief_olimp Кодvoid find(char* inb)
{
fndOK=-1;
char i... Dec 25 2008, 11:44  Сергей Борщ Цитата(chief_olimp @ Dec 25 2008, 13:44) ... Dec 25 2008, 12:05   chief_olimp Документацию я как раз читаю. Только напоминаю я н... Dec 25 2008, 12:18    Сергей Борщ Цитата(chief_olimp @ Dec 25 2008, 14:18) ... Dec 25 2008, 13:44     chief_olimp Обращение есть.
CODEvoid find (const void *findbuf... Dec 25 2008, 14:22   alx2 Цитата(Сергей Борщ @ Dec 25 2008, 17:05) ... Dec 26 2008, 10:36    Сергей Борщ Цитата(alx2 @ Dec 26 2008, 12:36) Во врем... Dec 26 2008, 15:32     Сергей Борщ Цитата(Сергей Борщ @ Dec 26 2008, 17:32) ... Dec 26 2008, 17:48 rokhan Спасибо вы нашли опечатку.
КодНа счет тегов могли ... Dec 25 2008, 09:00 zltigo Цитата(rokhan @ Dec 25 2008, 12:00) У авт... Dec 25 2008, 09:48 chief_olimp т.е. каждый раз при очередном сравнивании данные с... Dec 25 2008, 09:15
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|