Вопросы про структуры, указатели и всякие непонятки в "Си"

Все о микроконтроллерах: AVR, PIC, STM8, STM32, Arduino, Altera, Xilinx, все что угодно. Этот раздел для всего что клацает байтиками.
Post Reply
Aneg
Posts: 17
Joined: 04 Jan 2012, 19:14
Location: Украина

Вопросы про структуры, указатели и всякие непонятки в "Си"

Post by Aneg »

Вот в этом "Си" код:

Code: Select all

RCC->CR|=RCC_CR_HSION; //Turn ON HSI
while (!(RCC->CR & RCC_CR_HSIRDY)); //Wait until it's stable
[/size]
исходя их комментариев понятно:

- что в начале устанавливаем бит RCC_CR_HSION в 1
- потом идет цикл ожидания, пока бит RCC_CR_HSIRDY станет равным 1

Сам алгоритм понятен, но я не могу понять саму эту хитроумную запись. Что означают все эти палочки и стрелочки, каждый в отдельности?
User avatar
BSVi
Адепт
Posts: 3576
Joined: 15 Mar 2011, 12:32
Location: Киев

Re: Вопросы про структуры, указатели и всякие непонятки в "С

Post by BSVi »

Почитай таки любую книжку по си, в ЛЮБОЙ это расписано.

А по теме:
-> - обратиться по указателю
| - или
! - не
& - и
vens_i
Posts: 25
Joined: 17 Sep 2012, 09:25
Location: Пятигорск

Re: Вопросы про структуры, указатели и всякие непонятки в "С

Post by vens_i »

А лучше курс123avr, там в пятом уроке про это подробненько описанно
User avatar
N1X
Posts: 321
Joined: 20 Sep 2011, 20:11
Location: Беларусь, Гомель

Re: Вопросы про структуры, указатели и всякие непонятки в "С

Post by N1X »

это не то ли где текст через строку с рекламой?
vens_i
Posts: 25
Joined: 17 Sep 2012, 09:25
Location: Пятигорск

Re: Вопросы про структуры, указатели и всякие непонятки в "С

Post by vens_i »

Да это он. Очень информативен и в тоже время избыточен!
vens_i
Posts: 25
Joined: 17 Sep 2012, 09:25
Location: Пятигорск

Re: Вопросы про структуры, указатели и всякие непонятки в "С

Post by vens_i »

Коллеги а если не составит труда подкиньте реальный код где используются указатели! я лично ими не пользуюсь(от недостатка понимания как это все применить в реальных условиях) вроде как больше гемороя будет от них чем пользы. с теорией я знаком но не откажусь если подкинете ссылок и литературы.
вот тут хорошо написанно мир кода. ру
User avatar
BSVi
Адепт
Posts: 3576
Joined: 15 Mar 2011, 12:32
Location: Киев

Re: Вопросы про структуры, указатели и всякие непонятки в "С

Post by BSVi »

Такой пример - в первом посте темы, RCC - это указатель, а -> - обращение по указателю.
vens_i
Posts: 25
Joined: 17 Sep 2012, 09:25
Location: Пятигорск

Re: Вопросы про структуры, указатели и всякие непонятки в "С

Post by vens_i »

Это STMовская библиотечка как ме кажется,
User avatar
N1X
Posts: 321
Joined: 20 Sep 2011, 20:11
Location: Беларусь, Гомель

Re: Вопросы про структуры, указатели и всякие непонятки в "С

Post by N1X »

Ну так одно другому не мешает... У указателей есть своя ниша... К примеру функция принимает в качестве аргумента увесистую структуру... Если еще передавать по значению, то вызов получится неоправданно тяжелым, а передав указатель проблема решается легко и просто... Либо если функция должна возвращать несколько значений разных типов, то вполне логично передать ей указатели на переменные, а она запишет в эти переменные свои значения... И это не все ситуации... И всетаки не познакомиться с теорией, а подружиться имхо будет правильнее... ибо чужой рабочий код врядли будет снабжен разжевывающими комментариями по поводу применения указателей, а без комментариев разобраться обычно не просто...
User avatar
BSVi
Адепт
Posts: 3576
Joined: 15 Mar 2011, 12:32
Location: Киев

Re: Вопросы про структуры, указатели и всякие непонятки в "С

Post by BSVi »

Кроме указателей есть ссылки, которые тоже делают увесистый вызов легким, но без сопряженных с указателями проблем. В эмбеде полностью от указателей отказаться практически невозможно, потому, что именно ними адресное пространство привязывается к переменным. Практически потому, что это еще можно сделать директивами линкера, но это - плохой подход.
Vasiliy_Br
Posts: 11
Joined: 09 Sep 2013, 22:31

Re: Вопросы про структуры, указатели и всякие непонятки в "С

Post by Vasiliy_Br »

Всем привет, вот решаю тестики всякие, нужна Ваша помощь. Честное слово гуглил, но что то не нашел.
Какие объявления приведут к ошибке компиляции?
void foo1(int n, int a[]) {} /*1*/
void foo2(int n, int a[*]) {} /*2*/
void foo3(int n, int a[*]); /*3*/
void bar(int a[0]); /*4*/
int a[*] что такое астерикс в квадратных скобках?

пс Новую тему решил не создавать, а это название мне понравилось :)
User avatar
BSVi
Адепт
Posts: 3576
Joined: 15 Mar 2011, 12:32
Location: Киев

Re: Вопросы про структуры, указатели и всякие непонятки в "С

Post by BSVi »

2 и 3 потому, что * - это оператор и выражение [*] не имеет смысла.
Vasiliy_Br
Posts: 11
Joined: 09 Sep 2013, 22:31

Re: Вопросы про структуры, указатели и всякие непонятки в "С

Post by Vasiliy_Br »

... Я сейчас пасусь вот тут http://www.quizful.net . И вопрос оттуда, вроде правильные варианты 2 , 4. Как раз в обсуждении говорили что [*] допустимо и только в прототипах ф. А я попытался выяснить, что же это такое .
Post Reply