Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
17.05.2018, 12:30
|
|
Вид на жительство
Регистрация: 27.11.2007
Сообщений: 434
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 30 сообщении(ях)
|
Re: Указатели, чтоб их!
dgrishin, опередил.
|
|
|
|
17.05.2018, 13:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,655
Сказал спасибо: 117
Сказали Спасибо 815 раз(а) в 592 сообщении(ях)
|
Re: Указатели, чтоб их!
Сообщение от parovoZZ
|
Это от компилятора зависит или от погоды на Марсе?
|
От компилятора и степени оптимизации.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
|
|
|
|
17.05.2018, 14:06
|
|
Вид на жительство
Регистрация: 10.06.2007
Сообщений: 429
Сказал спасибо: 34
Сказали Спасибо 51 раз(а) в 47 сообщении(ях)
|
Re: Указатели, чтоб их!
Сообщение от sat_art
|
*data++ - постинкриментирование прочитанных данных (переменной по указателю), а не указателя. Что не есть правильно.
|
Нет, так как приоритет постинкремента больше, чем у разименования, т.е. в левой части будет:
А вот какой указатель попадёт в функцию (инкрементированный или нет) -- не знаю.
|
|
|
|
17.05.2018, 15:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 15.11.2010
Сообщений: 2,379
Сказал спасибо: 338
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
|
Re: Указатели, чтоб их!
Что-то вы не то говорите =)
У меня функция возвращает байт. Этот байт мне надо положить по адресу, на который указывает data. На следующей итерации цикла опять прилетает байт. Я его хочу положить по адресу data+1. И т. д. А заправлять в функцию мне без разницы что - хоть нули:
Код:
|
*data++ = SPI_ReadByte(nop) |
Мне важно сообщение срисовать. А срисовывать придётся много)) 32 байта)).
|
|
|
|
17.05.2018, 15:16
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Указатели, чтоб их!
Нихрена подобного. ++ применяется к указателю, а не к данным.
Код:
|
if (SW_I2C_Write(address | 0x01) == ACK)
{
while (size--)
* buf++ = SW_I2C_Read(size ? 1 : 0); //read to buffer
Result = I2C_SUCCESS;
} |
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
17.05.2018, 18:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 15.11.2010
Сообщений: 2,379
Сказал спасибо: 338
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
|
Re: Указатели, чтоб их!
Меня только что осенило. Я написал скелет функций, но нигде их не вызываю. Соответственно, компилятор не видит тип переменной и начинает ругаться. Когда скармливаю в функцию буфер переменная видна и всё all right =)
|
|
|
|
17.05.2018, 19:40
|
|
Прописка
Регистрация: 21.04.2018
Сообщений: 174
Сказал спасибо: 1
Сказали Спасибо 66 раз(а) в 53 сообщении(ях)
|
Re: Указатели, чтоб их!
Ребзя, что вы там спорите по * ++ ? Посмотрите в учебнике Си приоритеты и порядок выполнения операторов! Унарные операторы * и ++ имеют одинаковый приоритет, а порядок выполнения в этом случае - справа налево. Сначала ++, потом *. То есть, сначала постинкремент указателя (адреса), затем обращение к указателю. После выполнения команды значение указателя всегда на 1 больше текущего, в который была произведена текущая щапись.
|
|
|
|
17.05.2018, 19:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,655
Сказал спасибо: 117
Сказали Спасибо 815 раз(а) в 592 сообщении(ях)
|
Re: Указатели, чтоб их!
Сообщение от Исбанни
|
Сначала ++, потом *.
|
Это лишь если написать
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
|
|
|
|
17.05.2018, 19:49
|
|
Прописка
Регистрация: 21.04.2018
Сообщений: 174
Сказал спасибо: 1
Сказали Спасибо 66 раз(а) в 53 сообщении(ях)
|
Re: Указатели, чтоб их!
Тааак, а давайте вы сначала проверите, а потом - опишите впечатления? ))
Справа налево. ‹‹‹‹---- вот тудыть!. Откройте учобник.
Сначала *, затем ++ того, на что * указатель
|
|
|
|
17.05.2018, 19:53
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.02.2005
Адрес: Минск, Беларусь
Сообщений: 8,177
Сказал спасибо: 2,830
Сказали Спасибо 2,752 раз(а) в 2,036 сообщении(ях)
|
Re: Указатели, чтоб их!
а не инкремент ли это того, что лежит по указателю ptr?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:51.
|
|