类型名称“的重新声明无效”;uint8“;在C中

类型名称“的重新声明无效”;uint8“;在C中,c,C,我正在将2CAPI源代码合并到应用程序代码中。 我在两个API源代码中遇到了数据类型冲突的问题 两者都有标准的泛型typedef,如下所示 typedef signed char int8; typedef unsigned char uint8; typedef signed short sint16; typedef unsigned short uint16; ... ... 这是不是有什么办法可以绕过API源代码,不想更改API源代码中的任何内容来解决遇到的错误 提前谢谢 我怀疑这个问

我正在将2CAPI源代码合并到应用程序代码中。 我在两个API源代码中遇到了数据类型冲突的问题

两者都有标准的泛型typedef,如下所示

typedef signed char int8;
typedef unsigned char uint8;
typedef signed short sint16;
typedef unsigned short uint16;
...
...
这是不是有什么办法可以绕过API源代码,不想更改API源代码中的任何内容来解决遇到的错误


提前谢谢

我怀疑这个问题对任何语言都能回答,因为它太宽泛了。此外,您最好删除这些typedef,并重写API以使用
类型。这可能是一个简单的查找和替换操作。重新声明不会导致任何问题。您确定两个声明是相同的吗?或者一个正在使用
#define
,另一个正在使用
typedef
?您能否同时显示typedef声明和收到的实际错误?删除typedef并包含stdint.h将生成错误,因为stdint使用*后缀。你可以用include-guard创建一个单一的types头,并将该头包含到你删除的旧typedef文件中。就像我写的:这是一个简单的查找和替换操作来修复它。我怀疑这个问题对于任何语言都能回答,因为它太宽泛了。此外,您最好删除这些typedef,并重写API以使用
类型。这可能是一个简单的查找和替换操作。重新声明不会导致任何问题。您确定两个声明是相同的吗?或者一个正在使用
#define
,另一个正在使用
typedef
?您能否同时显示typedef声明和收到的实际错误?删除typedef并包含stdint.h将生成错误,因为stdint使用*后缀。你可以用include-guard创建一个单一的types头,并将该头包含到你删除的旧typedef文件中。就像我写的:这是一个简单的查找和替换操作来修复它。