Я просматриваю устаревший код моей кодовой базы и обнаружил следующий фрагмент кода:
void *sampleFunction(tUint8 **inParam1, tUint32 inParam2, char *inParam3, tUint32 inParam4, void* inArg1, void* inArg2)
{
X100 *foo = getFooValue(...);
return foo;
}
Поскольку я не могу опубликовать точный код (поскольку он связан с работой), я опубликовалПриведенный выше пример (именно так он и выглядит).
X100
, показанный здесь, представляет собой структуру, которая содержит некоторые данные и, как показано ниже, есть функция обратного вызова, которой она назначена (или чтовот как это выглядит для меня)
typedef void* (*tFileReadVerifyCallback)((tUint8 **inParam1, tUint32 inParam2, char *inParam3, tUint32 inParam4, void* inArg1, void* inArg2);
tFileReadVerifyCallback callBack;
//for a certain case :
callBack = sampleFunction;
Теперь у меня есть следующие вопросы:
- Почему
sampleFunction
возвращает foo
типа X100
?Это потому, что обратные вызовы ведут себя по-разному? - Если так, то мой следующий вопрос будет состоять в том, как работают эти обратные вызовы / как на это влияет возвращаемое значение?
ПРИМЕЧАНИЕ. Я пытался предоставить достаточно информации, стараясь, чтобы она была минимальной.Если потребуется больше информации, пожалуйста, дайте мне знать, я постараюсь отредактировать ее и добавить дополнительную информацию.