Страница 1 из 1

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

Добавлено: 28 янв 2012, 18:23
Aneg
Вот в этом "Си" код:

Код: Выделить всё

RCC->CR|=RCC_CR_HSION; //Turn ON HSI
while (!(RCC->CR & RCC_CR_HSIRDY)); //Wait until it's stable

исходя их комментариев понятно:

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

Сам алгоритм понятен, но я не могу понять саму эту хитроумную запись. Что означают все эти палочки и стрелочки, каждый в отдельности?

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

Добавлено: 28 янв 2012, 18:33
BSVi
Почитай таки любую книжку по си, в ЛЮБОЙ это расписано.

А по теме:
-> - обратиться по указателю
| - или
! - не
& - и

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

Добавлено: 17 сен 2012, 09:28
vens_i
А лучше курс123avr, там в пятом уроке про это подробненько описанно

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

Добавлено: 25 сен 2012, 21:57
N1X
это не то ли где текст через строку с рекламой?

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

Добавлено: 23 ноя 2012, 10:54
vens_i
Да это он. Очень информативен и в тоже время избыточен!

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

Добавлено: 23 ноя 2012, 10:59
vens_i
Коллеги а если не составит труда подкиньте реальный код где используются указатели! я лично ими не пользуюсь(от недостатка понимания как это все применить в реальных условиях) вроде как больше гемороя будет от них чем пользы. с теорией я знаком но не откажусь если подкинете ссылок и литературы.
вот тут хорошо написанно мир кода. ру

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

Добавлено: 23 ноя 2012, 11:01
BSVi
Такой пример - в первом посте темы, RCC - это указатель, а -> - обращение по указателю.

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

Добавлено: 23 ноя 2012, 11:06
vens_i
Это STMовская библиотечка как ме кажется,

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

Добавлено: 23 ноя 2012, 14:47
N1X
Ну так одно другому не мешает... У указателей есть своя ниша... К примеру функция принимает в качестве аргумента увесистую структуру... Если еще передавать по значению, то вызов получится неоправданно тяжелым, а передав указатель проблема решается легко и просто... Либо если функция должна возвращать несколько значений разных типов, то вполне логично передать ей указатели на переменные, а она запишет в эти переменные свои значения... И это не все ситуации... И всетаки не познакомиться с теорией, а подружиться имхо будет правильнее... ибо чужой рабочий код врядли будет снабжен разжевывающими комментариями по поводу применения указателей, а без комментариев разобраться обычно не просто...

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

Добавлено: 23 ноя 2012, 14:53
BSVi
Кроме указателей есть ссылки, которые тоже делают увесистый вызов легким, но без сопряженных с указателями проблем. В эмбеде полностью от указателей отказаться практически невозможно, потому, что именно ними адресное пространство привязывается к переменным. Практически потому, что это еще можно сделать директивами линкера, но это - плохой подход.

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

Добавлено: 27 сен 2013, 12:11
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[*] что такое астерикс в квадратных скобках?

пс Новую тему решил не создавать, а это название мне понравилось :)

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

Добавлено: 27 сен 2013, 14:03
BSVi
2 и 3 потому, что * - это оператор и выражение [*] не имеет смысла.

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

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