Пытаюсь сделать следующее: я не уверен - правильно ли это.В качестве альтернативы мне, возможно, придется написать функцию Wrapper, но я бы хотел найти лучший способ.Кроме того, в будущем другой разработчик хотел бы использовать хеш-функцию из другой библиотеки, платформы, в зависимости от требований к производительности для различных целей.
Созданная структура:
typedef struct Hashctx{
char inStream[BUFSIZ];
char outHash[MAX_HASH];
int (*Hashing)(char* DstBuf, size_t DstBufSize, \
size_t *olen, char* SrcBuf, size_t SrcBufSize);
}Hashctx;
Hashctx App1;
И попытаться инициализировать следующим образом:
init()
{
#ifdef PLATFORM
App1.Hashing = SHA1sumPlatform;
#elif
App1.Hashing = SHA1sum;
#endif
}
Хотя аргументы, принимаемые обеими функциями, одинаковы, тип возвращаемого значения отличается.Я застрял с ошибками cannot assigned be entity of type ...
и no definition for App1
int SHA1sum(...)
uint32_t SHA1sumPlatform(...)
Я попытался выполнить типографскую обработку, также не устраняя ошибку
Hashing = (int)SHA1sumPlatform;
Спасибо