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 * line
上遇到以下错误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 : ')'
答案 0 :(得分:8)
尝试:
typedef struct reprVectorsTree * RHandle;
你不能只使用一个结构,好像它是一个没有typedef的C类型(例如typedef struct reprVectorsTree;
)
编辑:假设您使用的是最新的C编译器,或者仅使用#include <stdbool.h>
,您还需要bool
类型int
。