Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
06.09.2007, 13:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Косвеная адресация и указатели
Хотелось бы узнать где применяют указатели и косвеную адресацию,чтоб в будущем может чаще с ней работать.Знаю что с масивами можно с ней работать.
|
|
|
|
06.09.2007, 14:35
|
|
Частый гость
Регистрация: 26.08.2006
Сообщений: 34
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Почитайте книгу.
http://dasbook.ru/index.php?book=129
Ответ на Ваш вопрос находится на 121 странице (Указатели и адреса переменных).
|
|
|
|
07.09.2007, 16:42
|
|
Прохожий
Регистрация: 02.08.2007
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Вообще странный вопрос.
Косвенная адресация применяется там где применяется ![Валяюсь от смеха](images/smilies/icon_biggrin.gif) , например, есть такой код:
Код:
|
switch (i){
case 0: function1();break;
case 1: function2();break;
case 2: function3();break;
case 3: function4();break;
default: break;
} |
Как это же, реализовано с помощью указателя:
Код:
|
void (*function[])(void) = {function1,
function2,
function3,
function4
};
Вызов происходит так:
function[i](); |
Данный вариант вообщем-то дает некоторую экономию по коду, и лично мне это удобнее, но для небольшого кол-ва функции наверное лучше switch использовать.
Но так же надо помнить, что указатель это переменная (ну либо константа), которая занимает место, соответственно нельзя бездумно плодить указатели, забивая память и код...
Так же, надо понимать, что делаешь, компиллятор чаще всего не контроллирует выход за пределы, можно элементарно адресоваться не туда).
|
|
|
|
07.09.2007, 16:52
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Это все понятно,но есть ли выгода обратится один раз к регистру косвеной адресацией вместо прямой ? на асеме,правда при косвеной адресацией меньше возни с банками у пиков.Насчет си применял только пока что для массива,но читал что составление програм с указателями для компа программ есть выгода,как насчет микроконтролеров не знаю.
|
|
|
|
08.09.2007, 12:21
|
|
Прохожий
Регистрация: 02.08.2007
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Цитата:
|
но есть ли выгода обратится один раз к регистру косвеной адресацией вместо прямой ?
|
Нет, выгоды нет ни какой, будет оверхед по коду.
Мое мнение, если можно обойтись без указателей, то не надо их использовать.
|
|
|
|
08.09.2007, 14:17
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Сообщение от Quasar_A
|
Цитата:
|
но есть ли выгода обратится один раз к регистру косвеной адресацией вместо прямой ?
|
Нет, выгоды нет ни какой, будет оверхед по коду.
Мое мнение, если можно обойтись без указателей, то не надо их использовать.
|
Вот и хотел услышать это мнение,но с помощью указателей так можно замудрить прогу,что не сразу разберутся
|
|
|
|
08.09.2007, 16:59
|
|
Прописка
Регистрация: 30.07.2006
Адрес: Фрязино, М.О.
Сообщений: 116
Сказал спасибо: 0
Сказали Спасибо 23 раз(а) в 20 сообщении(ях)
|
CERGEI1982
Простой пример:
Одна процедура по прерыванию циклически пишет массив, а другая асинхронно его анализирует. Только относительная косвенная адресация...
|
|
|
|
08.09.2007, 18:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Сообщение от my504
|
CERGEI1982
Простой пример:
Одна процедура по прерыванию циклически пишет массив, а другая асинхронно его анализирует. Только относительная косвенная адресация...
|
Тоже хорошо,вот и узнаю примеры работы с указателями и косвеной адресацией чтоб в будещем применить.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Адресация по шине I2C
|
vendim |
Микроконтроллеры, АЦП, память и т.д |
4 |
13.09.2008 19:45 |
Косвенная адресация.
|
bopohok |
Микроконтроллеры, АЦП, память и т.д |
8 |
29.04.2007 00:38 |
Адресация RAM в PIC18
|
vasseff |
Микроконтроллеры, АЦП, память и т.д |
0 |
20.04.2007 22:39 |
Указатели W3100
|
Skt |
Микроконтроллеры, АЦП, память и т.д |
0 |
11.10.2005 03:56 |
Адресация в CompactFlash
|
xelos |
Микроконтроллеры, АЦП, память и т.д |
3 |
13.10.2004 21:55 |
Часовой пояс GMT +4, время: 01:48.
|
|