c - 函数在公共 API 中采用 void* 并在后台键入 * 的冲突类型错误
问题描述
我正在尝试构建一个第 3 方库,该库具有在公共标头中定义的函数
void reset(void* instance);
并且在实施中
void reset(instance_type* instance) {
...
}
而且我遇到了类型冲突的编译器错误。现在这对我来说表面上看起来很明显。作者使用的是 MSVC,而我使用的是设置为 C99 标准的 gcc - 也许这就是它在作者机器上工作的原因?在我不想instance_type
通过公共接口公开的约束下,我可以做的最小修改是什么?
解决方案
在我不想
instance_type
通过公共接口公开的约束下,我可以做的最小修改是什么?
定义必须与标题中的声明一致。如果您不想instance_type
在公共 API 中公开,那么这意味着修改定义以匹配标头:
void reset(void* _instance) {
instance_type* instance = _instance;
...
}
推荐阅读
- excel - 使用 phpspreadsheet 时,从模板 xlsx 文件更改了条形图和圆环图的颜色和样式
- c# - 如何在 Gmail 中发送电子邮件,以便在 Google 日历中自动创建活动
- java - 使用 Firebase 在 Android 中进行 Twitter 身份验证
- vue.js - 方法“watch”在组件定义中具有类型“object”。您是否正确引用了该函数?
- android - 如何检查 Jetpack Compose UI 测试中是否选择了单选按钮?
- angular - 如何从角度数组中的重复项中挑选一个对象?
- sql - 按顺序获取特定系列值
- reactjs - 有没有办法将 useVirtual 与 Material-UI Select 集成
- linq - Azure Cosmos DB .NET v3 Linq WHERE 条件为空结果
- c# - 使用 Linq 根据条件过滤对象列表