реклама на сайте
подробности

 
 
> Точки и Стрелочки :), Где правильно применять "." а где "->" при обращени
Lexy_one
сообщение Aug 29 2011, 14:50
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 90
Регистрация: 28-07-09
Из: Чернигов
Пользователь №: 51 621



Вобщем вопрос в названии темы!

Вот например при разбирании чужого кода наткнулся на следующую строчку:

EpCnfg[EP].pUSB_DmaDesc->DmaBufferLegtn = 1;

В данном примере и в первом и во втором случае идет обращение к елементу структуры... Но в первом случае используется оператор "." а во втором "->" какая принципиальная разница между этими обращениями... если это сделано специально, то что хотел показать автор данного кода выбирая тот или иной оператор?

P.S. Код взят из примера USB CDC из стандартных примеров IAR ARM.

Сообщение отредактировал Lexy_one - Aug 29 2011, 14:50
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KARLSON
сообщение Aug 29 2011, 14:58
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 5-05-06
Из: Нижегородская обл.
Пользователь №: 16 819



"." применяются со ссылками, а стрелочки с указателями.
EpCnfg[EP] - это ссылка (как я понимаю EP это название структуры, что и есть ссылка),

pUSB_DmaDesc - это указатель, элемент структуры EP (указывает тоже на какую-то структуру или класс, который имеет в своём составе элемент переменную DmaBufferLegtn).


--------------------
Кризис - это не отсутствие денег, а отсутствие идей! Учитесь и никаких кризисов не будет.
Go to the top of the page
 
+Quote Post
777777
сообщение Aug 30 2011, 09:13
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(KARLSON @ Aug 29 2011, 18:58) *
"." применяются со ссылками, а стрелочки с указателями.

"." применяются к самим переменным, а стрелочки к указателям на них. Разумеется, переменная (как и ссылка на нее) должна быть структурой.

Цитата(KARLSON @ Aug 29 2011, 18:58) *
EpCnfg[EP] - это ссылка (как я понимаю EP это название структуры, что и есть ссылка),

Ты неправильно понимаешь, в Си нет ссылок, их ввели в С++ в основном для того, чтобы можно было передавать параметры в функцию как по значению, так и по ссылке.

Цитата(andrew_b @ Aug 30 2011, 10:41) *
Ответ в любой книжке по языку Си!

А разве за такие ответы здесь не положено в бан?
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Aug 31 2011, 04:30
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(777777 @ Aug 30 2011, 13:13) *
А разве за такие ответы здесь не положено в бан?

Нет, не положено. Для того, чтобы получить ответ на элементарные вопросы, существуют учебники, а не форум. Автор темы даже не потрудился заглянуть в книжку.
Go to the top of the page
 
+Quote Post
777777
сообщение Aug 31 2011, 18:10
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(andrew_b @ Aug 31 2011, 08:30) *
Нет, не положено. Для того, чтобы получить ответ на элементарные вопросы, существуют учебники, а не форум. Автор темы даже не потрудился заглянуть в книжку.

Элементарность вопросов зависит от вопрошающего. Тем более что это форум для начинающих.

Цитата(Lexy_one @ Aug 31 2011, 10:44) *
Просто при использовании указателей на структуры я привык использовать "(*a).b".

Это еще зачем? Читабельность улучшает? sm.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Lexy_one   Точки и Стрелочки :)   Aug 29 2011, 14:50
|- - V_G   Цитата(KARLSON @ Aug 30 2011, 01:58) ...   Aug 29 2011, 15:31
||- - KARLSON   Разницы в принципе ни какой. Только ссылка не инкр...   Aug 29 2011, 15:39
||- - demiurg_spb   В си нет ссылок. Можно передавать данные только ли...   Aug 30 2011, 05:32
|- - dxp   Цитата(777777 @ Aug 30 2011, 16:13) в Си ...   Aug 30 2011, 13:08
||- - 777777   Цитата(dxp @ Aug 30 2011, 17:08) Скорее с...   Aug 30 2011, 15:06
||- - HARMHARM   Цитата(777777 @ Aug 30 2011, 18:06) А раз...   Aug 30 2011, 17:21
|- - Lexy_one   Цитата(andrew_b @ Aug 31 2011, 07:30) Нет...   Aug 31 2011, 06:44
- - andrew_b   Цитата(Lexy_one @ Aug 29 2011, 18:50) Воб...   Aug 30 2011, 06:41
- - skripach   ЦитатаEpCnfg[EP].pUSB_DmaDesc->DmaBufferLegtn =...   Aug 30 2011, 07:16
- - Lexy_one   Тоесть код 1 идентичен коду 2: Код 1 int summ(du...   Aug 30 2011, 07:23
- - Палыч   Цитата(Lexy_one @ Aug 30 2011, 11:23) Тое...   Aug 30 2011, 07:41
|- - andrew_b   Цитата(Палыч @ Aug 30 2011, 11:41) Операц...   Aug 30 2011, 08:32
- - XVR   Цитата(Lexy_one @ Aug 30 2011, 11:23) Тое...   Aug 30 2011, 07:50
- - Lexy_one   Цитата(XVR @ Aug 30 2011, 10:50) В С да, ...   Aug 30 2011, 08:23


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 00:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01395 секунд с 7
ELECTRONIX ©2004-2016