|
Передача параметров в функцию., AVR-GCC/ATMega2560 |
|
|
|
Aug 12 2011, 12:40
|
Группа: Новичок
Сообщений: 6
Регистрация: 12-08-11
Пользователь №: 66 695

|
Добрый день, коллеги! Возможно я что-то недопонимаю или не знаю в C, посему возник такой вопрос: Код #include <stdio.h> void SendString (const char _String[]) { unsigned int i = 0; while (_String[i] != '\0') { printf ("%c\n", _String[i]); i++; } }
int main (void) { SendString ("LaLa"); return 0; } Прекрасно работает на i386. Но ни одна из Код void SendString (const char _String[]) { unsigned int i = 0; while (_String[i] != '\0') { SendChar (_String[i]); i++; } return; }
void SendString2 (const char *_String) { while (*_String) { SendChar (*_String++); } } ... SendString ("1234567890"); SendString2 ("1234567890"); ... функций не работает - в функцию SendChar передаётся мусор. Самостоятельный вызов SendChar ('a'); работает прекрасно. Как нужно правильно передавать параметры на ATMega/AVR-GCC.
Сообщение отредактировал Tuma - Aug 12 2011, 12:43
|
|
|
|
|
 |
Ответов
|
Aug 22 2011, 08:29
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (777777 @ Aug 22 2011, 07:25)  Вообще-то никакие компиляторы давно не выдают предупреждений в подобных случаях. К счастью, не все комппиляторописатели сдаются перед малограмотной толпой  . Вот, например, IAR: QUOTE D:WORK_ARMXADDMAINmain.c(440) : Remark[Pe236]: controlling expression is constant Отключаемо, как и любые warnings/remarks но таки есть. QUOTE (ARV @ Aug 22 2011, 08:23)  while(1) - по крайней мере последний здравому смыслу не противоречит. Совершенно дикий у Вас "здравый смысл" - написать зачем-то бессмысленное выражение "пока белый цвет белого цвета", после чего ожидать, что компилятором оно будет похерено и получится то, что естественно пишется как for( ; ; ) - выполнять нечто без контроля каких-либо условий. QUOTE (ARV @ Aug 22 2011, 08:23)  в то же время в for второй операнд может быть пустым местом, причем, что самое странное, это пустое место воспринимается как истинное логическое выражение. Воспринимается, как отсутствие каких либо условий для продолжения выполнения цикла. Отсутствие запретов и контроля трактуется, как разрешение. Отсутствие таблички на скамейке в парке об ограничении является естественным указанием на то, что сидеть можно. Табличка на зеленой скамейке - сидеть можно пока скамейка зеленая, просто идиотская.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 22 2011, 09:15
|

Профессионал
    
Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357

|
Цитата(zltigo @ Aug 22 2011, 12:29)  Совершенно дикий у Вас "здравый смысл" - написать зачем-то бессмысленное выражение "пока белый цвет белого цвета" Что ж тут дикого? Аргументом оператора while является логическая переменная, она здесь присутствует и не равна нулю. Цитата(zltigo @ Aug 22 2011, 12:29)  естественно пишется как for( ; ; ) - выполнять нечто без контроля каких-либо условий. А чему равно значение логической переменной при ее отсутствии?  Тут приходится записывать в стандарт костыль, явно утверждающий, что в данной констрокции (и только в ней и никакой больше) отсутствие переменной должно трактоваться как ее истинное значение, а в других случаях как ошибка. Или вы будете спорить с тем, что это костыль? Цитата(zltigo @ Aug 22 2011, 12:29)  Отсутствие таблички на скамейке в парке об ограничении является естественным указанием на то, что сидеть можно. Табличка на зеленой скамейке - сидеть можно пока скамейка зеленая, просто идиотская. Но мы же не о скамейке говорим, а о языке программирования.
|
|
|
|
Сообщений в этой теме
Tuma Передача параметров в функцию. Aug 12 2011, 12:40 Mareng Кодvoid SendString (char String[]... Aug 12 2011, 12:51 Tuma Mareng, увы, не помогло.
Упорно присылает только п... Aug 12 2011, 12:58 Mareng Цитата(Tuma @ Aug 12 2011, 19:40) Самосто... Aug 12 2011, 13:03 zltigo Ответьте себе на два вопроса:
- Какая архитектура ... Aug 12 2011, 13:17 Tuma ЦитатаА если подряд 5-10 раз вызвать SendChar() с ... Aug 12 2011, 13:21 Genadi Zawidowski Исходники функци передачи символа покажите.
0) не ... Aug 12 2011, 15:17 zltigo QUOTE (Genadi Zawidowski @ Aug 12 2011, 18... Aug 12 2011, 16:07  AHTOXA Цитата(zltigo @ Aug 12 2011, 22:07) Однак... Aug 12 2011, 16:56   zltigo QUOTE (AHTOXA @ Aug 12 2011, 19:56) Нет, ... Aug 12 2011, 17:32    _Pasha Цитата(zltigo @ Aug 12 2011, 20:32) Фу, к... Aug 12 2011, 19:56     zltigo QUOTE (_Pasha @ Aug 12 2011, 22:56) К сож... Aug 12 2011, 20:47 Tuma Цитатане очень хорошая идея свои переменные (имена... Aug 15 2011, 12:32 sergeeff Цитата(Tuma @ Aug 15 2011, 15:32) Меня ещ... Aug 15 2011, 13:17 zltigo QUOTE (Tuma @ Aug 15 2011, 14:32) Меня ещ... Aug 16 2011, 11:38 Genadi Zawidowski Цитата(Tuma @ Aug 15 2011, 16:32) Я как-т... Aug 20 2011, 15:25  zltigo QUOTE (Genadi Zawidowski @ Aug 20 2011, 17... Aug 20 2011, 15:41 Tuma ЦитатаОбычно с подчеркивания начинаются служебные ... Aug 16 2011, 11:32 Tuma Однако с гарвардской архитектурой у меня пока не о... Aug 16 2011, 13:22 _Pasha Кодextern void send_char(char what);
#defi... Aug 16 2011, 14:50  zltigo QUOTE (_Pasha @ Aug 16 2011, 16:50) Я бы ... Aug 16 2011, 16:06   Юрий_СВ Цитата(zltigo @ Aug 16 2011, 19:06) Помол... Aug 16 2011, 18:11    Zlumd Цитата(Юрий_СВ @ Aug 17 2011, 01:11) Норм... Aug 17 2011, 02:49    777777 Цитата(Юрий_СВ @ Aug 16 2011, 22:11) Норм... Aug 17 2011, 09:50   aesok Цитата(zltigo @ Aug 16 2011, 20:06) Помол... Aug 20 2011, 12:02    zltigo QUOTE (aesok @ Aug 20 2011, 14:02) ответ ... Aug 20 2011, 12:10     aesok Цитата(zltigo @ Aug 20 2011, 16:10) Для о... Aug 20 2011, 13:12 sergeeff Наверное к тому же, как возврат из функции send_bl... Aug 16 2011, 16:11 AHTOXA Цитата(sergeeff @ Aug 16 2011, 22:11) Нав... Aug 17 2011, 03:11 _Pasha Цитата(zltigo @ Aug 16 2011, 19:06) зачем... Aug 16 2011, 18:18 sergeeff Интересная позиция. Городить do {} while(0) для об... Aug 16 2011, 19:33 _Pasha Цитата(zltigo @ Aug 20 2011, 15:10) Для о... Aug 20 2011, 13:27 zltigo QUOTE (_Pasha @ Aug 20 2011, 15:27) Повто... Aug 20 2011, 13:37  Юрий_СВ Цитата(zltigo @ Aug 20 2011, 16:37) Что к... Aug 20 2011, 13:53   zltigo QUOTE (Юрий_СВ @ Aug 20 2011, 15:53) Види... Aug 20 2011, 14:02    ARV Цитата(zltigo @ Aug 20 2011, 17:02) Да .... Aug 20 2011, 17:44     zltigo QUOTE (ARV @ Aug 20 2011, 19:44) что-то я... Aug 20 2011, 18:28      ARV Цитата(zltigo @ Aug 20 2011, 21:28) что-т... Aug 21 2011, 08:28       zltigo QUOTE (ARV @ Aug 21 2011, 10:28) существу... Aug 21 2011, 10:21    777777 Цитата(zltigo @ Aug 20 2011, 18:02) Анало... Aug 21 2011, 12:19 _Pasha Забыл привести одну конструкцию, используемую в Pr... Aug 21 2011, 09:02 ARV Цитата(_Pasha @ Aug 21 2011, 12:02) Кто н... Aug 21 2011, 09:44  _Pasha Цитата(ARV @ Aug 21 2011, 12:44) и чего т... Aug 21 2011, 09:47 ReAl Цитата(_Pasha @ Aug 21 2011, 12:02) И так... Aug 21 2011, 11:56 ReAl Кодfor(;;) {
// endless loop
}Совсем-со... Aug 21 2011, 17:04 sergeeff Цитата(ReAl @ Aug 21 2011, 20:04) Кодfor... Aug 21 2011, 20:31  zltigo QUOTE (sergeeff @ Aug 21 2011, 23:31) Ну ... Aug 21 2011, 23:03   777777 Цитата(zltigo @ Aug 22 2011, 03:03) Я уже... Aug 22 2011, 04:25   ARV Цитата(zltigo @ Aug 22 2011, 02:03) Я уже... Aug 22 2011, 05:23    777777 Цитата(ARV @ Aug 22 2011, 09:23) лично мн... Aug 22 2011, 05:59 sergeeff Цитата(zltigo @ Aug 22 2011, 11:18) К сча... Aug 22 2011, 08:35  zltigo QUOTE (sergeeff @ Aug 22 2011, 11:35) Как... Aug 22 2011, 08:43  zltigo QUOTE (777777 @ Aug 22 2011, 12:15) Что ж... Aug 22 2011, 09:32 ARV Цитата(zltigo @ Aug 22 2011, 11:29) Воспр... Aug 22 2011, 12:42  zltigo QUOTE (ARV @ Aug 22 2011, 15:42) разбор в... Aug 22 2011, 12:53   ARV Цитата(zltigo @ Aug 22 2011, 15:53) Отсут... Aug 22 2011, 13:32    zltigo QUOTE (ARV @ Aug 22 2011, 16:32) то почем... Aug 22 2011, 14:26     ARV Цитата(zltigo @ Aug 22 2011, 17:26) Напри... Aug 22 2011, 14:34 sergeeff Меня критикуют за цитаты из книг. Тем не менее. Ге... Aug 22 2011, 10:04 zltigo QUOTE (sergeeff @ Aug 22 2011, 13:04) явл... Aug 22 2011, 10:17 zltigo QUOTE но for(;;)
Это значит, что наличие акваланга... Aug 22 2011, 14:42 Petka Цитата(zltigo @ Aug 22 2011, 18:42) Это з... Aug 22 2011, 14:55  zltigo QUOTE (Petka @ Aug 22 2011, 17:55) У меня... Aug 22 2011, 15:02   ARV Цитата(zltigo @ Aug 22 2011, 19:02) Там ц... Aug 22 2011, 16:38   Petka Цитата(zltigo @ Aug 22 2011, 19:02) Почит... Aug 22 2011, 17:16 sergeeff Думается мне, что все, как часто это бывает в жизн... Aug 22 2011, 18:53 _Pasha Главная-таки проблема: если в стандарт закралась г... Aug 23 2011, 06:00
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|