struct reprVectorsTree;
#ifdef __cplusplus
extern "C" {
#endif
typedef reprVectorsTree * RHandle;
RHandle create_reprVectorsTree(float **, int , int );
void free_reprVectorsTree(RHandle);
float* work_decode(RHandle , bool*, int);
#ifdef __cplusplus
}
#endif
我根据这里的答案编写了接口头文件
How to use c++ objects in c?
,但我得到语法错误?少了什么?
----编辑----
我改成了
struct reprVectorsTree;
#ifdef __cplusplus
extern "C" {
#endif
typedef struct reprVectorsTree * RHandle;
RHandle create_reprVectorsTree(float **, int , int );
void free_reprVectorsTree(RHandle);
float* work_decode(RHandle , bool *, int);
#ifdef __cplusplus
}
#endif
现在我得到了float*行上的以下错误
error C2143: syntax error : missing ')' before '*'
error C2081: 'bool' : name in formal parameter list illegal
error C2143: syntax error : missing '{' before '*'
error C2059: syntax error : ','
error C2059: syntax error : ')'
最佳答案
尝试:
typedef struct reprVectorsTree * RHandle;
不能把结构当作没有typedef的C中的一个类型(例如
typedef struct reprVectorsTree;
)编辑:如果您使用的是最新的C编译器,那么对于
#include <stdbool.h>
类型,您还需要bool
,或者只使用int
来代替。