Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Передача структуры в функцию
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Собственно проблем никаких нет, я могу передать через указатель, а могу передать по значению. Писал сегодня функцию, она принимает две точки Код: plaintext 1. 2. 3. 4. 5. и возвращает значение сжимающего коффициента (вторая точка получена после воздействия сжимающего оператора на первую точку) Код: plaintext 1. Мне не требуется передача по указателю, можно передать по значению. Но я написал код, и сразу испытал жуткий дискомфорт. Не могу дальше писать программу, хочу переписать через указатели, и даже почему-то уверен что это правильно. Вообще, мне кажется ,что все структуры должны передаваться через указатель. (Вероятно из-за экономии памяти, хотя может быть не это основная причина) 1. Как вы передаёте структуры ? 2. Правильно ли я рассуждаю ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2014, 04:09 |
|
||
|
Передача структуры в функцию
|
|||
|---|---|---|---|
|
#18+
Хотя в таком случае мне нужно указывать квалификатор const для того чтобы показать что параметры меняться не будут. Но это единственное преимущество. И то, не уверен что это преимущество. В общем всё равно не нравится. Перепишу через указатели ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2014, 04:35 |
|
||
|
Передача структуры в функцию
|
|||
|---|---|---|---|
|
#18+
SashaMercuryПерепишу через указатели Не надо через указатели. Передавай по константной ссылке. Технически - то же самое, но синтаксис проще. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2014, 11:57 |
|
||
|
Передача структуры в функцию
|
|||
|---|---|---|---|
|
#18+
SashaMercuryМне не требуется передача по указателю, можно передать по значению. Но я написал код, и сразу испытал жуткий дискомфорт. Не могу дальше писать программу, хочу переписать через указатели, и даже почему-то уверен что это правильно. Вообще, мне кажется ,что все структуры должны передаваться через указатель. (Вероятно из-за экономии памяти, хотя может быть не это основная причина) 1. Как вы передаёте структуры ? 2. Правильно ли я рассуждаю ? Передача объектов по значению имеет смысл в рекурсиях и (возможно) в safe-threaded функциях. В остальных случаях в С++ имеет смысл передавать ссылку или указатель. Существуют ЯП и парадигмы где как раз передача по значению превалирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2014, 13:12 |
|
||
|
Передача структуры в функцию
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovПередавай по константной ссылке. Он еще до С++ не добрался :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2014, 13:51 |
|
||
|
Передача структуры в функцию
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyDimitry SibiryakovПередавай по константной ссылке. Он еще до С++ не добрался :) А там его поджидает movable семантика :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2014, 14:11 |
|
||
|
Передача структуры в функцию
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovSashaMercuryПерепишу через указатели Не надо через указатели. Передавай по константной ссылке. Технически - то же самое, но синтаксис проще. Не сильно- то и проще. На один символ :) st.f при ссылке vs st->f при указателе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2014, 14:15 |
|
||
|
Передача структуры в функцию
|
|||
|---|---|---|---|
|
#18+
А что там с синтаксисом то проще ? Указатели мне понятны, и проблем с ними я не испытываю. Они мне очень даже нравятся. Я даже не могу представить как они могут кому-то не нравится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2014, 14:18 |
|
||
|
Передача структуры в функцию
|
|||
|---|---|---|---|
|
#18+
SashaMercuryА что там с синтаксисом то проще ? Копипастить проще куски кода. Например решил ты вынести кусок кода работы со структурой в отдельную функцию: в параметрах как ссылку указал и скопировал код, а с указателем надо еще точки на -> править. Да и путаницы меньше со ссылками - везде ставь точку. Правда есть другой подвох - забудешь & в параметрах указать, ошибки при компиляции не будет, пойдет передача по значению. В общем минусы есть там и там. Лично мне ссылки удобнее. PS Я уже это писал тебе как-то, в ответ получил от местных гуру что ссылки это уже С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2014, 14:40 |
|
||
|
Передача структуры в функцию
|
|||
|---|---|---|---|
|
#18+
BagaBagaНе сильно- то и проще. На один символ :) st.f при ссылке vs st->f при указателе... И на передающей стороне: 1) Явное взятие адреса 2) Возможность передать инвалидный указатель, включая NULL. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2014, 14:41 |
|
||
|
Передача структуры в функцию
|
|||
|---|---|---|---|
|
#18+
Dima TSashaMercuryА что там с синтаксисом то проще ? Копипастить проще куски кода. Например решил ты вынести кусок кода работы со структурой в отдельную функцию: в параметрах как ссылку указал и скопировал код, а с указателем надо еще точки на -> править. Да и путаницы меньше со ссылками - везде ставь точку. Правда есть другой подвох - забудешь & в параметрах указать, ошибки при компиляции не будет, пойдет передача по значению. В общем минусы есть там и там. Лично мне ссылки удобнее. PS Я уже это писал тебе как-то, в ответ получил от местных гуру что ссылки это уже С++. Да, помню, были жаркие споры, вроде-бы :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2014, 14:56 |
|
||
|
Передача структуры в функцию
|
|||
|---|---|---|---|
|
#18+
Сахарок это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2014, 15:01 |
|
||
|
Передача структуры в функцию
|
|||
|---|---|---|---|
|
#18+
Dima Tссылки это уже С++. Передача структуры по значению это тоже "уже С++". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2014, 15:05 |
|
||
|
Передача структуры в функцию
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovDima Tссылки это уже С++. Передача структуры по значению это тоже "уже С++". Си такого не предполагает разве ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2014, 15:21 |
|
||
|
Передача структуры в функцию
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovПередача структуры по значению это тоже "уже С++". Нет. Пока еще С :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2014, 15:28 |
|
||
|
Передача структуры в функцию
|
|||
|---|---|---|---|
|
#18+
Вот что я сегодня встретил у Диомидиса Спинеллиса в Анализе программного кода (хотя про экономию памяти и быстродействие догадывался, и писал выше): Анализ программного кода. Диомидис Спинеллис. 3.1.7 Указатели как псевдонимыПрисваивание указателя выполняется быстрее и экономнее, чем присваивание большого объекта. В следующем примере переменная curt могла бы быть структурным объектом, а не указателем на такой объект. Но соотвествующее присваивание выполнялось бы неэкономно, поскольку пришлось бы копировать содержимое целой структуры: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 10:09 |
|
||
|
Передача структуры в функцию
|
|||
|---|---|---|---|
|
#18+
SashaMercuryПрисваивание указателя выполняется быстрее и экономнее, чем присваивание большого объекта Это зависит от величины данного объекта и генерируемого кода. В общем случае разницу между MOV и MOVSW без микроскопа не разглядишь. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 12:12 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38723458&tid=2019334]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 181ms |

| 0 / 0 |
