依赖于日志相关函数的日志结构如下所示:
typedef struct
{
TFkt_vlogf vlogf;
TFkt_outf outf;
void* logData;
} TLogger;
在这个日志记录函数中,有一个抽象的 logData,它根据记录器的作业分配了不同的指针。
Filelogger 会像这样访问存储的文件句柄。
FILE * fileHandle = (FILE *)(logger->logData);
虽然这可以编译,但 SPLint 对此不满意并抱怨此消息:
转换为底层抽象类型FILE *
:(FILE *)(logger->logData)
我能做些什么来满足 SPLint?
- 我试着洒一些
/*@abstract@*/
,但没有帮助
C90 中是否有更好的方法来存储和访问数据,同时仍然保持结构签名以独立于其实现来传递类型?