Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Подскажите про передачу указателей в функции
|
|||
|---|---|---|---|
|
#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, 08:54 |
|
||
|
Подскажите про передачу указателей в функции
|
|||
|---|---|---|---|
|
#18+
Ещё добавлю объявление типа для каллбак: Код: plaintext 1. Т.е. сам тип уже является указателем и в случае с: Код: plaintext 1. получится указатель на указатель ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2015, 09:03 |
|
||
|
Подскажите про передачу указателей в функции
|
|||
|---|---|---|---|
|
#18+
cpp2015Ещё добавлю объявление типа для каллбак: Код: plaintext 1. Т.е. сам тип уже является указателем и в случае с: Код: plaintext 1. получится указатель на указатель ?да, верно рассуждаешь )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2015, 09:48 |
|
||
|
Подскажите про передачу указателей в функции
|
|||
|---|---|---|---|
|
#18+
cpp2015В чём принципиальное отличие кода: в том, чем заполняется регистр EAX -- значением переменной или её адресом. cpp2015Раз в эту функцию передаётся указатель, то почему тогда прототип принимающей функции не сделан с указателем Код: plaintext 1. ? потому, что тип StaticFunctionPointer сам по себе указатель, что и отражено в его названии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2015, 10:37 |
|
||
|
Подскажите про передачу указателей в функции
|
|||
|---|---|---|---|
|
#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. ? Потому что в С и С++ указатель на фукнцию и функция -- это один и тот же тип данных. Функция и её адрес -- это одно и то же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2015, 10:44 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39089550&tid=2018781]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
162ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 291ms |
| total: | 537ms |

| 0 / 0 |
