我正在尝试使用C语言创建一个库并将其包含在c ++项目中。 在这个库中,我想声明一个typedef指令并在c和c ++代码中使用它。这就是我想要做的。
C头文件
#ifdef MYFILENAME_H
#define MYFILENAME_H
typedef struct my_new_type_struct{
int var1;
char *str1;
} my_new_type;
void myFunction(my_new_type arg1, int arg2);
#endif
C代码文件
#include "myFileName.h"
void myFunction(my_new_type arg1, int arg2){
/* do something */
}
这里的问题是my_new_type未定义,未知类型名称“ my_new_type”
c ++代码文件
#include <myFileName.h>
my_new_type var1;
此处相同,my_new_type未定义,“ my_new_type”未命名类型。
我的事件在C ++代码中尝试过:
extern "C"{
#include <myFileName.h>
my_new_type var1:
}
但是我没工作。
有人可以给我正确的步骤,在c头文件中声明一个结构,然后从c和c ++文件中调用它。