Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум


 
Опции темы

Уроки СИ для AVR микроконроллеров

Непрочитано 23.08.2012, 16:17  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от Yurkin2007 Посмотреть сообщение
У Вас параметр data есть указатель на char, а совсем не массив. А какой размер переменной типа указатель? 4 байта в лучшем случае.
Нужно передавать ссылку на массив
Вредитель ...
А скажите - что есть имя массива ????
Реклама:
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 23.08.2012, 16:23  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от dosikus Посмотреть сообщение
А скажите - что есть имя массива ????
Вы это уже с ИзиРайдером обсуждали !
Тут, может, некая путаница имеет место. У автора массив и формальный параметр имеют одинаковые имена, являясь по сути разными типами переменных ...

Последний раз редактировалось Yurkin2007; 23.08.2012 в 16:26.
Yurkin2007 вне форума  
Непрочитано 23.08.2012, 16:27  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Сообщение от Yurkin2007 Посмотреть сообщение
Вы это уже с ИзиРайдером обсуждали !
Ну и что вы вынесли из того обсуждения ?
У человека правильное определение было , зачем с толку сбивать ?
Аргумент функции указатель на char , имя массива и есть указатель на первый элемент массива типа char ...

Сообщение от Yurkin2007 Посмотреть сообщение
Тут, может, некая путаница имеет место.
Это у вас путаница . Читайте о видимости переменных , указателях и типах...
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 23.08.2012 в 16:34.
dosikus вне форума  
Непрочитано 23.08.2012, 16:39  
papa_n
Временная регистрация
 
Регистрация: 08.01.2007
Сообщений: 92
Сказал спасибо: 17
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
papa_n на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Рано радовался(((
Ошибка в строке
[HTML]len=sizeof(data);[/HTML]

Error: D:\Project_CV_encode\main.c(81): incomplete type is not allowed?
papa_n вне форума  
Непрочитано 23.08.2012, 16:41  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Я толкую вот о чём
Код:
char myArray[10];
char* myPtr = myArray;

printf("%d\n", sizeof(myArray)) // prints 10 
printf("%d\n", sizeof(myPtr)); // prints 4 (on a 32-bit machine)
Yurkin2007 вне форума  
Непрочитано 23.08.2012, 16:45  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от papa_n Посмотреть сообщение
Рано радовался(((
Это потому, что Ваш компилятор вычисляет значение sizeof на этапе компиляции и заменяет выражение sizeof на полученную константу.
В Вашем случае компилятор не может определить, какой размер будет у массива, т.к. размер будет известен только при вызове функции при выполнении программы.
Придётся Вам определять размер снаружи и передавать, как дополнительный параметр ...
Yurkin2007 вне форума  
Непрочитано 23.08.2012, 17:19  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от Yurkin2007 Посмотреть сообщение
Я толкую вот о чём
Код:
printf("%d\n", sizeof(myArray)) // prints 10
Упорствуете в своей ошибке, ведь говорил уже, что смысл у sizeof другой, не количество элементов массива.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 23.08.2012, 17:22  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от Yurkin2007 Посмотреть сообщение
компилятор не может определить, какой размер будет у массива, т.к. размер будет известен только при вызове функции при выполнении программы.
И это ошибка - размер массива, в рассматриваемом случае, известен на этапе компиляции.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 23.08.2012, 17:46  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от tempora Посмотреть сообщение
смысл у sizeof другой, не количество элементов массива.
Ну, дык, просветите меня, пожалуйста, если это, конечно, не военная тайна!
Yurkin2007 вне форума  
Непрочитано 23.08.2012, 17:49  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Уроки СИ для AVR микроконроллеров

Сообщение от tempora Посмотреть сообщение
И это ошибка - размер массива, в рассматриваемом случае, известен на этапе компиляции.
Размер массива data[] известен. Размер передавемого функции параметра data[] неизвестен.

Последний раз редактировалось Yurkin2007; 23.08.2012 в 18:05.
Yurkin2007 вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видео уроки dosikus Микроконтроллеры, АЦП, память и т.д 61 23.01.2012 21:06
Видео уроки (flash) Proteus 7.1 fmssp Proteus 5 13.08.2007 03:56
AVR уроки Рюмика chipic128 Proteus, KiCAD и другие ECAD 9 07.03.2007 21:46
уроки от LABCENTRE(PIC12F675+C) dosikus Микроконтроллеры, АЦП, память и т.д 22 09.10.2006 10:16


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


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