Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
29.10.2015, 08:54
|
|||
|---|---|---|---|
|
|||
Подскажите про передачу указателей в функции |
|||
|
#18+
В чём принципиальное отличие кода: Код: plaintext 1. 2. 3. от Код: plaintext 1. 2. 3. ? А вообще вопрос у меня возник из-за передачи callback-функций. На stackoverflow вычитал статью про вызовы callback на c# из dll на с++. Там в функцию на c++ передаётся указатель на делегат(функцию обратного вызова на c#) путём Marshal.GetFunctionPointerForDelegate(Delegate). Но прототип функции на c++ объявлен как: Код: plaintext 1. Раз в эту функцию передаётся указатель, то почему тогда прототип принимающей функции не сделан с указателем Код: plaintext 1. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.10.2015, 09:03
|
|||
|---|---|---|---|
|
|||
Подскажите про передачу указателей в функции |
|||
|
#18+
Ещё добавлю объявление типа для каллбак: Код: plaintext 1. Т.е. сам тип уже является указателем и в случае с: Код: plaintext 1. получится указатель на указатель ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.10.2015, 09:48
|
|||
|---|---|---|---|
Подскажите про передачу указателей в функции |
|||
|
#18+
cpp2015Ещё добавлю объявление типа для каллбак: Код: plaintext 1. Т.е. сам тип уже является указателем и в случае с: Код: plaintext 1. получится указатель на указатель ?да, верно рассуждаешь )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.10.2015, 10:37
|
|||
|---|---|---|---|
Подскажите про передачу указателей в функции |
|||
|
#18+
cpp2015В чём принципиальное отличие кода: в том, чем заполняется регистр EAX -- значением переменной или её адресом. cpp2015Раз в эту функцию передаётся указатель, то почему тогда прототип принимающей функции не сделан с указателем Код: plaintext 1. ? потому, что тип StaticFunctionPointer сам по себе указатель, что и отражено в его названии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.10.2015, 10:44
|
|||
|---|---|---|---|
Подскажите про передачу указателей в функции |
|||
|
#18+
cpp2015В чём принципиальное отличие кода: Код: plaintext 1. 2. 3. от Код: plaintext 1. 2. 3. ? Принципиальное отличие в том, что переменную, которая будет передана внутрь функции f во втором случае (при передаче по указателю) можно будет изменить внутри этой функции, и это изменение будет применено к переменной, педеданной в функцию. В первом случае такого не будет, все изменения переменной k останутся только внутри этой функции f. cpp2015А вообще вопрос у меня возник из-за передачи callback-функций. На stackoverflow вычитал статью про вызовы callback на c# из dll на с++. Там в функцию на c++ передаётся указатель на делегат(функцию обратного вызова на c#) путём Marshal.GetFunctionPointerForDelegate(Delegate). Но прототип функции на c++ объявлен как: Код: plaintext 1. Раз в эту функцию передаётся указатель, то почему тогда прототип принимающей функции не сделан с указателем Код: plaintext 1. ? Потому что в С и С++ указатель на фукнцию и функция -- это один и тот же тип данных. Функция и её адрес -- это одно и то же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2018781]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
17ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 194ms |

| 0 / 0 |
