Я хочу вызвать следующую функцию и передать ей функцию с параметром. Целью этого является то, что он должен вызывать функцию с моим указанным параметром, чтобы я знал, что вызвало функцию (в этом случае булавку gpio на малиновой Pi).Передача функции обратного вызова с параметром функции
int wiringPiISR(int pin, int edgeType, void (*function)(void));
В настоящее время у меня есть:
for (int i = 0; i < myValues.size(); ++i)
{
int myValue = myValues[ i ];
wiringPiISR(myValue, INT_EDGE_RISING, &myCallback(myValue));
}
Хотя это дает мне следующую ошибку:
error: lvalue required as unary ‘&’ operand
который я не могу понять, как к моему пониманию, MyValue является именующим или нет?
Это то, что я хочу сделать даже возможно? Если да, то как? Функция wiringPiISR из библиотеки под названием wiringPi, и я хотел бы избежать ее модификации как можно больше.
Вы имеете в виду функцию, которая принимает параметр, но имеет предопределенное значение для него, чтобы его можно было вызывать без аргументов? – imreal
Не совсем уверен, что вы имеете в виду, но я так думаю. Все, что я хочу выполнить, - дать функции wiringPiISR функцию для вызова с предоставленным параметром, так что wiringPiISR вызывает функцию с предоставленным параметром. Думаю, я использовал неправильный термин здесь, отредактировал вопрос. – PTS
'& myCallback (myValue))' такой же как '& (myCallback (myValue))), поэтому вы берете адрес на возвращаемое значение' myCallback'. поскольку 'myValue' уже является первым параметром, вам может потребоваться передать' & myCallback'. Но мы не можем сказать из текущего контекста. –