Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Объявил указатель на функцию void (*pf)(CPnt point); присовил значение pf = &Set2IfZero; вызвал ScanN(pf); При присвоении значения указателю компилятор ругается. Объсните маленькому почему?
Отправлено
Lucky
16 сентября 2008 г. 14:34
Составить ответ
|
Вернуться на конференцию
Ответы
☞ ☞ Главная дефекационная машина (MBedder) ☞ ☞
-
pidAVR
(13.10.2008 17:04:37
196.38.152.10,196.35.158.181
,
пустое
,
картинка
)
А Вы случайно не пытаетесь присвоить указатель на ф-ию-член класса?
-
smb
(16.09.2008 15:57:33
192.168.125.208,212.5.70.188
, 195 байт)
Именно это. Сделал по Вашему, получилось. Я счастлив.
-
Lucky
(16.09.2008 16:24:41
217.69.212.124
,
пустое
)
Тогда в догонку:
-
smb
(16.09.2008 16:32:42
192.168.125.208,212.5.70.188
, 532 байт)
А вызов (+)
-
smb
(16.09.2008 16:05:50
192.168.125.208,212.5.70.188
, 344 байт)
pf = Set2IfZero;
-
++
(16.09.2008 15:08:7
10.0.1.35,212.45.31.226
,
пустое
)
у меня так
-
MARS
(16.09.2008 14:59:42
212.40.41.26
, 258 байт)
Да все у меня так-же. Наверно какая-то фигня типа точки не там.
-
Lucky
(16.09.2008 15:07:32
217.69.212.124
,
пустое
)
ну так что тогда говорит компилятор?
-
MARS
(16.09.2008 15:28:12
212.40.41.26
,
пустое
)
[C++ Error] FRAME.cpp(54): E2034 Cannot convert 'void (* (_closure )(CPnt))(CPnt)' to 'void (*)(CPnt)'
-
Lucky
(16.09.2008 15:40:22
217.69.212.124
,
пустое
)
ну неможет конвертировать первый тип во второй.. и шо за _closure ?
-
MARS
(16.09.2008 15:52:48
212.40.41.26
,
пустое
)
Вот и я - дико удивляюсь. А если поставить не так pf = &Set2IfZero; а так pf = Set2IfZero; то пишет [C++ Error] FRAME.cpp(54): E2235 Member function must be called or its address taken
-
Lucky
(16.09.2008 15:57:52
217.69.212.124
,
пустое
)
Я в С плюсах не сильно (Вы вроде говорили что указатель внутри класса), но ...{+}
-
MARS
(16.09.2008 16:12:35
212.40.41.26
, 247 байт)
Указатель на простую функцию и указатель на функцию-член класса - это разные типы (+)
-
Каа
(16.09.2008 17:03:42
213.132.80.164
, 201 байт)
ээээ....про "смещение относительно адреса объекта" мягко говоря не совсем верно :)
-
smb
(16.09.2008 17:09:39
192.168.125.208,212.5.70.188
, 286 байт)
да, стормозил :)
-
Каа
(16.09.2008 17:12:57
213.132.80.164
,
пустое
)
Я, наверное, спутал с указателем на виртуальную функцию
-
Каа
(16.09.2008 17:18:14
213.132.80.164
,
пустое
)
Звёздочка справа должна быть
-
Mebius
(16.09.2008 14:47:6
195.28.47.34
,
пустое
)
Не помогает. Пробовал так - *p, и так - p*. Уточните, пожалуйста.
-
Lucky
(16.09.2008 14:51:29
217.69.212.124
,
пустое
)
Пардон. Наврал. У меня так: (+)
-
Mebius
(16.09.2008 14:57:37
195.28.47.34
, 141 байт)
Странность какая-то. Все варианты перепробовал. В том числе, как у Вас. Ничего не помогает. Указатель, правда, член класса, но со словом статик.
-
Lucky
(16.09.2008 15:05:10
217.69.212.124
,
пустое
)
то есть надо pf = Set2IfZero; Без амперсанда.
-
Mebius
(16.09.2008 15:07:20
195.28.47.34
,
пустое
)
Так тоже делал. По сути эти два варианта одно и тоже.
-
Lucky
(16.09.2008 15:08:28
217.69.212.124
,
пустое
)
"Ну тада я не знаю!" :)
-
Mebius
(16.09.2008 15:10:22
195.28.47.34
,
пустое
)
Тогда всем спасибо, за попытку помочь. И раскланяюсь.
-
Lucky
(16.09.2008 15:12:28
217.69.212.124
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 56:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru