我正在尝试建立一个第三方库,该库具有在公共标头中定义的功能,例如
void reset(void* instance);
并在执行中
void reset(instance_type* instance) { ... }
而且我遇到了一个冲突的类型编译器错误。现在看来,对我而言,表面上的原因显而易见。作者使用的是MSVC,而我使用的是设置为C99标准的gcc,也许这就是为什么它可以在作者的计算机上工作的原因?在不希望instance_type通过公共接口公开的约束下,我可以做些什么最小的修改?
instance_type
查看更多
在不希望instance_type通过公共接口公开的约束下,我可以做些什么最小的修改?
该定义必须与标题中的声明一致。如果您不想instance_type在公共API中公开,则意味着修改定义以匹配标头:
void reset(void* _instance) { instance_type* instance = _instance; ... }
很酷-这是我对原始问题下的主题中的@ThomasJager的建议