Добрый день, подскажите пожалуйста, что я делаю не так? Хочу создать структуру из двух байтов и указателя на функцию, прикомпиляции выдает ошибку:
expected primary-expression before '*' token
в строке const struct TCommand tcIdentify = {opIdentify, 1, &FInitConnection(quint8*buf)};
#ifndef COMMANDS_H
#define COMMANDS_H
#include <QDataStream>
//Коды команд
#define opIdentify 0x01 //Идентификация прибора и протокола
const struct TCommand* Commands[]={
// &tcIdentify,
};
class commands
{
public:
commands();
//функции выполнения команд
struct TCommand{
quint8 Code; //Код команды
quint8 BCnt; //Кол-во фикс байт данных, которые нужно принять
void (*Exec)(quint8*buf); //функция, вызываемая при вызове команды
};
quint8 * buf = new quint8;
void FInitConnection(quint8 * buf);//установка соединения
const struct TCommand tcIdentify = {opIdentify, 1,
&FInitConnection(quint8*buf)};
};
#endif // COMMANDS_H
Попробуй убрать список аргументов
const struct TCommand tcIdentify = {opIdentify, 1,
&FInitConnection(quint8*buf)}
на
const struct TCommand tcIdentify = {opIdentify, 1,
&FInitConnection}
Написал адрес результата вызова функции с аргументами. А надо адрес только самой функции.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости