только не бейте)) почему lcd_string(0xC4, " : : "); массив (маcсив же определить надо [] )? 9ть символов это с нуль символом?
Как это работает? 1) в главной функции компилятор доходит до lcd_string(0x81, "«acГ Ѕa DS1307"); 2)уходит на функцию void lcd_string(unsigned char command, char *string) 3) и что за чудеса происходят дальше?
В языке C массив - это фактически указатель на его первый элемент. Например:
Код:
char a[9]; // создали массив из 9 байтов char *x; // создали переменную-указатель на char char *y; // ещё одну такую же x = &a[0]; // в x передали адрес нулевого элемента массива y = a; // фактически сделали то же самое, теперь x и y равны, т.к. указывают на одну и ту же область памяти
По коду:
Код:
lcd_string(0xC4, " : : "); // Это можно было бы записать и так: char *a = " : : "; lcd_string(0xC4, a); // или так: char a[] = {' ', ' ', ':', ' ', ' ', ':', ' ', ' ', 0} lcd_string(0xC4, a);
Имени в первом варианте у этого массива нет ввиду ненадобности. Этот массив (т.е., адрес его нулевого элемента) и передаётся в функцию и присваивается переменной (указателю на char) string. Ну а дальше уже всё понятно - внутри функции указатель (string) инкрементируется до тех пор, пока то, на что он указывает (*приращивается,string), не станет равно нулю (конец строки).
Получается переменные unsigned char command, char *string обьявляются в функции void lcd_string и работают только в пределах этой функции? можно ли их объявить глобально чтобы они работали на протяжении всего кода и как бы выглядела тогда функция void lcd_string?
Получается переменные unsigned char command, char *string обьявляются в функции void lcd_string и работают только в пределах этой функции?
вы только что сделали открытие! а ведь если бы прочли любую книгу по основам языка Си, открытие бы не состоялось... может, все-таки рискнете сначала почитать о языке, на котором собираетесь программировать?
mastech писал(а):
можно ли их объявить глобально чтобы они работали на протяжении всего кода и как бы выглядела тогда функция void lcd_string?
ARV ваши ответы воспринимаются таким образом как будто вы хотите обидеть, высмеять, уличить в глупости.
я не делаю открытий я пытаюсь учится и мне нужна в этом помощь, собственно поэтому я здесь. книги читаю/дочитал (Грег Перри, Дин Миллер. Деннис Ритчи(туговато идет), Белов(не до конца) Прокопенко(начал))
надо больше практиковаться но на это крайне мало времени (работа, дом, семья), все по возможности.
извините, но я на самом деле порой занимаюсь высмеиванием, если считаю, что это заслуженно. хотя чаще я изо всех сил стараюсь натолкнуть каждого на верный путь... ваши попытки разобраться с достаточно сложным проектом мне напоминают попытки совершить заплыв через Ламанш, при том что плавать вы только со спасательным кругом вчера научились. нужно же начинать с изучения основ, а потом уже применять эти основы на практике, а не наоборот.
что хранится в unsigned char command лично мне неизвестно: чтобы ответить на этот вопрос, нужно либо быть автором вашей программы, либо изучить ее от корки до корки - и то и другое явно не моё... но можно быть уверенным, что там хранится какой-то байт
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
извините, но я на самом деле порой занимаюсь высмеиванием, если считаю, что это заслуженно.
крайне неверное решение, что касается обучения. Была училка по математике в 7 классе, относилась она к ученикам которые туго понимали, крайне неуважительно, сажала на задние парты, не вызывала к доске, не отвечала на вопросы, решив что учить таких учеников смысла нет. В 8 классе пришел новый учитель подход к обучению был совершенно другой, первым делом на новой теме к доске шли троечники в том числе и я, развернутые ответы, разбор полетов, в общем замечательный учитель, в итоге 4-5 и полное понимание тем, контрольные не казались страшным сном. Жаль что в следующем году ее не было(выжили другие учителя), и к нам вернулась прежняя училка Панфилова, и алгебра снова стала не очень приятным предметом(тут конечно не малую роль должны были сыграть родители, обратить внимание на разницу в успеваемости, но не обратили, а у меня в таком возрасте были другие интересы)) и уже прошло очень много много лет ).
ARV ваши ответы крайне неприятны, может пусть другой ответит. Здесь же не форум профессионалов, а любителей которые сами учатся в свободное время, и сами составляют учебную программу не всегда правильную.
ARV ваши ответы крайне неприятны, может пусть другой ответит. Здесь же не форум профессионалов, а любителей которые сами учатся в свободное время, и сами составляют учебную программу не всегда правильную.
а давайте каждый будет делать то, что считает нужным? я не заставляю вас даже читать то, что я пишу. неприятно вам - возможно, другим будет приятно. думаю, если бы вы в школе не взялись за учебники, никакая хорошая училка не сделала бы из вас отличника или хорошиста. ведь наверняка не каждый двоешник у вас стал математиком? все от вас зависит: будете искать повод обидеться - будете обиженным, будете искать полезную информацию - найдете ее.
если вы хотите, чтобы вам помогли исправить неправильную учебную программу (я имею ввиду программу обучения) - обращайте внимание на критику. критика редко приятна. если вы хотите шагать по своей неверной дорожке - вряд ли кто захочет вам помогать делать новые ошибки...
засим разглагольствования заканчиваю.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
то, что есть люди, готовые на невоспитанных грубиянов тратить свое время (например, как WiseLord), разъясняя им то, то каждый умеющий читать может прочесть в книжке (их именно для новичков пишут - вы в курсе?) - это факт. только я уже вышел из возраста, когда тратят свое время на то, что нужно грубиянам - я трачу его на то, что хочется мне. и вам придется с этим смириться.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
а что хранится в переменной unsigned char command какова роль этой переменной?
Вы же ниже приводите код, из которого явно видно, что там хранится некая команда, которую дальше передают в функцию lcd_com(). А что за команда - это уже завист от того, откуда вызывается lcd_string().
И этот вопрос, как заметил ув. ARV, действительно глупый. Потому что ответ на него можно получить, просто посмотрев на код, и имея минимальное соображение и минимальное представление о том, что такое функция и её аргументы. Вы сами только писали, что математику вроде как знаете, а разница между функцией в программировании и в математике минимальна.
Последний раз редактировалось WiseLord Чт июл 16, 2015 14:39:08, всего редактировалось 1 раз.
простите за флуд, по поводу учителей и математики я соглашусь с mastech поскольку у меня был "ВЫДАЮЩИЙСЯ" учитель математики каждый раз приходя на урок он заставлял нас ТУПО переписывать очередную тему, соответственно из класса только одна девочка могла сама разобраться во всем этом, а остальные, и я в том числе, пасли задних он же в свою очеред обижался и иногда хамил в наш адресс мол как этого мы не можем этого понять перед поступлением в техникум для меня был нанят репетитор, тоже учитель математики, его сестра, кстати,........, так вот, после того как она мне начала обяснять все эти синусы, косинусы и тому подобное то у меня наступило прозрение, настолько все стало ясно и понятно и как думаю я не разумел сего доселе поэтому, учитель и его метод подачи материала играет ОГРОМНОЕ значение для учащегося !!! как говорится: один лечит, а другой калечит !
рас уж такой флуд пошёл, не так давно один человек спросил вопрос,но никакого пояснения не было, не получается говорит, то то и то то сделать не могу. Задаю наводящие вопросы, как всегда, может модуль вообще не работает, может не так параметры передаються, не в том формате и тд. Его ответ был приблизительно таким "что вы мне тут глупые вопросы задаёте, лучше помолчите если не чего сказать, может за умного сойдёте" и самый перл "научитесь формулировать свои вопросы!". СВОИ ВОПРОСЫ, ребята, СВОИ! Так это его был вопрос а не мой! как же так?
_________________ я его в гугл на дрц прогнал, вы знаете, пи-када нет.
То mazda: Ну что поделать, идиотов хватает. И на этот форум иногда заглядывают. А некомпетентность часто ходит в одной связке с завышенной самооценкой и хамством.
не горят светодиоды на pc6 7, pb6 7 ну пц6 сброс, а остальным чего надо? бп67 это кварц, но там нет кварца на плате есть дип переключатели для подтяжки резисторов к верху и в этом режиме светодиоды горят почти в полный накал, но не мигают, как будто внутри порт отключен
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения