24.08.2012, 15:25
|
#841
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,268 раз(а) в 1,563 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Айяяяй ...
__________________
Осторожно , злой кот
|
|
|
|
24.08.2012, 16:03
|
#842
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от mimuh64
|
мой пример (первый) работает
|
Дам пояснения ТС'у, чтобы его не ввели в заблуждение заблуждения других. На самом деле цитата такова: "я взял кусок твоего примера - компилируется и работает", а после приведен код, который от Вашего, papa_n, примера отличается как небо от земли - функция убрана, от греха, а в качестве операнда sizeof использован сам массив, а не указатель на него. Было бы странно, если бы после такой "замены" результат остался прежним. На вопрос " почему машина не заводится" был дан ответ " а вот у меня мясорубка - прекрасно работает".
__________________
There's always more than one way to skin a cat.
|
|
|
|
24.08.2012, 16:11
|
#843
|
Прописка
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от tempora
|
Дам пояснения ТС'у, чтобы его не ввели в заблуждение заблуждения других.
|
Вы не правы...
Вот первичный вопрос - пост #804
char len;
char data[];
len=(sizeof(data))/3;
Пока автор расширял свой вопрос, я писал ответ, но ответ запоздал... я не обратил внимание на параметр в функции, бывает..., я быстренько впихнул его массив и выдал пример...отсюда и недоразумение. Естественно там и не пахнет функцией.
Мистер tempora, не нужно торопиться с выводами...
Последний раз редактировалось mimuh64; 24.08.2012 в 16:20.
|
|
|
|
24.08.2012, 16:27
|
#844
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от mimuh64
|
Вот первичный вопрос - пост #804
Пока автор расширял свой вопрос, я писал ответ, но ответ запоздал...
|
Хронология отчетливо видна - ответ на пост #804 был дан в #805, затем ТС задал следующий вопрос (#806, с функцией) и вот уже на него был дан процитированный ответ в #807. Ни один из упомянутых постов ТС'а не редактировался (не "расширялся"), в чем легко убедиться.
К тому же для моих выводов есть и другие "реальные примеры" -
Сообщение от mimuh64
|
Нужно определиться с массивом: так ... или вот так char N; char data[N];
|
__________________
There's always more than one way to skin a cat.
|
|
|
|
24.08.2012, 16:40
|
#845
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
На этот вопрос так и не ответили.
Сообщение от papa_n
|
Ошибка в строке
[HTML]len=sizeof(data);[/HTML]
Error: D:\Project_CV_encode\main.c(81): incomplete type is not allowed ?
|
Увж. tempora, не могли бы Вы ответить?
Известно, что применение оператора sizeof имеет ограничения, его нельзя, например, использовать с данными incomplete type.( ссылка)
У ТС объявлен массив
Код:
|
volatile char data[]={0xB1,0x9A,0xFF,0x2B,0x79,0xEE,0x31,0x46,0x32,0x2 E,0x83,0xDD,0x1B,0x00,0x00,0x01,0x00}; |
Имя массива передаётся в функцию как указатель на первый элемент. Так вот, с чего это вдруг внутри этой функции указатель на char стал вдруг incomplete type?
Последний раз редактировалось Yurkin2007; 24.08.2012 в 17:12.
Причина: Поправил объявление массива, а то nonamedov цепляется ...
|
|
|
|
24.08.2012, 16:56
|
#846
|
Почётный гражданин KAZUS.RU
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от Yurkin2007
|
У ТС объявлен массив char data[]. Имя массива передаётся в функцию как указатель на первый элемент. Так вот, с чего это вдруг внутри этой функции указатель на char стал вдруг incomplete type?
|
Извините, что вмешиваюсь, но такой массив тоже является incomplete type (он идентичен определению ссылки). Я понимаю, признавать свои ошибки трудно, но неужели Вы не видите кучу других Ваших ошибок, которые были указаны ранее?
|
|
|
|
24.08.2012, 17:03
|
#847
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от Yurkin2007
|
У ТС объявлен массив char data[]. Имя массива передаётся в функцию как указатель на первый элемент.
|
__________________
There's always more than one way to skin a cat.
Последний раз редактировалось tempora; 24.08.2012 в 17:27.
|
|
|
|
24.08.2012, 17:09
|
#848
|
Прописка
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от tempora
|
К тому же для моих выводов есть и другие "реальные примеры" -
|
Опять дискуссия...
папа спрашивает....
Я вижу что при таком описании даже о компиляции не может быть речи...
Я твечаю (описав массиы), я даже не смотрю на оператор sizeoff и на то с чем он работает (подразумемая что автор далее сам наполнит массив) - главное идет компиляция.
Я начинаю писать пример....время идет
Я вижу что автор дал новый вопрос (это то что я назвал "расширил вопрос").
Пример уже написан, я копирую массив автора и показываю работу оператора sizeoff . Вывожу пример...
Затем вижу что там была функция...Но уже поздно - пример пошел.
Затем Ваши сплошные поучения..
Ну и мы видим результат наших баталий...
Все в белых фраках....
|
|
|
|
24.08.2012, 17:10
|
#849
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от nonamedov
|
такой массив тоже является incomplete type
|
Пардон, я неправильно процитировал ТС. Уже исправил.
Сообщение от nonamedov
|
Я понимаю, признавать свои ошибки трудно
|
Я, по-моему, уже согласился с Вами в одном из предыдущих постов. Что мне ещё для Вас сделать, может, кровью блевать?
|
|
|
|
24.08.2012, 17:45
|
#850
|
Почётный гражданин KAZUS.RU
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от Yurkin2007
|
Так вот, с чего это вдруг внутри этой функции указатель на char стал вдруг incomplete type?
|
Это потому, что формальный параметр указанный в определении функции, это не одно и тоже, что и определенный ранее массив, который инициализирован, т.е. уже имеет определенную длину. К тому же, при передаче массива в качестве аргумента, длина (размер) массива не передается, а только ссылка на первый элемент.
Последний раз редактировалось nonamedov; 24.08.2012 в 18:31.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:28.
|
|