15.08.2012, 19:04
|
#791
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от ut1wpr
|
Не уверен.
|
Именно так и есть. Дело в том, что сам строковый литерал уже содержит в себе символ окончания строки, и неважно, что потом его компилятор "уложит" на место массива.
Сообщение от ut1wpr
|
Лучше объявить указатель на массив,...
|
( На строку, Вы хотели сказать?) Я просто придерживался приведенного кода, а не писал свой.
Сообщение от ut1wpr
|
особой разницы между строками и массивами не отмечалось.
|
Особой - действительно, нет, но это не значит, что её нет совсем.
__________________________________________________ ___________
По поводу разницы между строками и массивами символов в Сях - предлагаю провести такой эксперимент:
__________________
There's always more than one way to skin a cat.
Последний раз редактировалось tempora; 15.08.2012 в 20:42.
|
|
|
|
15.08.2012, 19:35
|
#792
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от ut1wpr
|
Я подчеркнул ассемблерный листинг после компиляции.
|
Вы кусок листинга отрезали - нельзя ли увидеть, что там дальше было?
__________________
There's always more than one way to skin a cat.
|
|
|
Сказали "Спасибо" tempora
|
|
|
15.08.2012, 19:37
|
#793
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Возможно, вы и правы. Но я придерживался постулата:
Цитата:
|
Класса String в C нет. Вместо этого есть массив из char, в конце которого символ с кодом 0.
|
А вот откуда он в конце берется - это еще надо выяснить.
Ну не может компилятор с бухты-барахты менять МОЙ код. Только в том случае, если я ему разрешу. А разрешить ему работу с классом "литерал" можно подключив библиотеку ‹string.h› Но ведь это уже не нейтив Си. Это от плюсов.
Вот так я все это воспринимал.
Теперь после ваших уроков призадумаюсь. Будет время, пороюсь. Готов поблагодарить, если в вашей науке будет истина.
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
15.08.2012, 19:42
|
#794
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от tempora
|
Вы кусок листинга отрезали - нельзя ли увидеть, что там дальше было?
|
А ведь таки да. Завершающий ноль на месте. Благодарю за поправку. Хоть и не нравится мне, когда кто-то за меня что-то добавляет без моего согласия на то...
Спасибо.
Код:
|
\ In section .near.rodata, align 1
13 const u8 TestString[] = "TRS";
\ TestString:
\ 000000 54525300 DC8 "TRS"
14 |
Разные формы инициализации - разные результаты. Применение двойных кавычек наверняка сообщило компилятору, что инициализируется именно литерал. Инициализация одиночными кодами не приводит к введению \0.
Код:
|
\ In section .near.rodata, align 1
13 const u8 TestString[] = {'T','R','S'};
\ TestString:
\ 000000 545253 DC8 84, 82, 83 |
Скорее всего, я подзабыл этот факт. Т.к. со стрингами работал мало. Именно в плане объявления отдельных строк. Теперь запомню потверже.
__________________
С уважением,
Vic / ut1wpr
Последний раз редактировалось ut1wpr; 15.08.2012 в 19:47.
|
|
|
|
15.08.2012, 19:58
|
#795
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от ut1wpr
|
кто-то за меня что-то добавляет без моего согласия на то...
|
Никто ничего не добаляет - Вы же сами написали:
Код:
|
const u8 TestString[] = "TRS"; |
а строка "TRS", согласно правилам Си, содержит в себе символ '\0' - это же строковый литерал, а не массив символов {'T','R','S'}.
__________________________________________________ _______________________
Вот более развернутая иллюстрация:
__________________
There's always more than one way to skin a cat.
Последний раз редактировалось tempora; 15.08.2012 в 20:00.
|
|
|
|
15.08.2012, 20:04
|
#796
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Урок принят. И увеличение размера на 1 тоже понятно.
До встречи...
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
15.08.2012, 21:09
|
#797
|
Прописка
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
У бедного Папы крышу снесет от всего... Но как всегда Протеус рулит.
|
|
|
|
15.08.2012, 21:33
|
#798
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Сообщение от mimuh64
|
У бедного Папы крышу снесет от всего... Но как всегда Протеус рулит.
|
Гвоздиком прибьет...
У меня нет Протезуса. У меня есть IAR STM8, IAR AVR, IAR STM32. Пока обхожусь.
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
15.08.2012, 21:39
|
#799
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
То есть, протеус - это рулезное средство рассматривания листингов? Гораздо проще смотреть тем же ПО, которым проводилась компиляция ( см. пример): - быстрее,
- точнее,
- полная совместимость со средством разработки,
- меньше места будет занято в ОЗУ и на диске.
__________________________________________________ _______________
У рыб нет меха и потому у них нет блох. Но если бы у них был мех, то в нём обязательно были бы блохи, а блохи - это...
__________________
There's always more than one way to skin a cat.
Последний раз редактировалось tempora; 15.08.2012 в 21:41.
|
|
|
|
15.08.2012, 21:51
|
#800
|
Прописка
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
|
Re: Уроки СИ для AVR микроконроллеров
Для ut1wpr и tempora .
Как по мне, так та картинка которую я привел - более наглядна (по сравнению с вашим спором). Однако все дело вкуса. Любой продукт нужно знать - тогда он виртуозный инструмент.
Сообщение от tempora
|
То есть, протеус - это рулезное средство рассматривания листингов? - быстрее,
- точнее,
- полная совместимость со средством разработки,
- меньше места будет занято в ОЗУ и на диске.
|
Листинг здесь ни причем (речь шла о том как доходчиво подать тему), по всем пунктам - не убедительно, особенно последнее (я не знаю сейчас того у кого проблема с диском , а про термин "точность" - я думаю что ты погорячился...).
Ребятки давайте не будем отходит от темы, я как то не особо к флуду...
Последний раз редактировалось mimuh64; 15.08.2012 в 21:59.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:57.
|
|