如何将结构从 c++ 传递到 c 中的函数?
How to pass struct from c++ to function in c?
我有一个C++文件,如下所示:
int myNum[10] = {10, 20, 20, 40, 50, 60, 70, 80, 90, 100};
struct rfid
{
int AntennaID;
char *tid;
};
for (int i = 0; i < 10; i++) {
AntennaID = myNum[i];
struct rfid p1 = {AntennaID, tid};
cout << "roll no : " << p1.AntennaID << endl;
cout << "roll no : " << p1.tid << endl;
passInfo(*p1);
}
我有一个C文件,如下所示:
#include <stdio.h>
void passInfo(*p1)
{
printf("%s :: n", *p1);
}
如何将C++框架的结构传递给 C 的函数?
- 创建一个将同时针对 C 和 C++ 编译的标头。
// shared.h
typedef struct rfid_
{
int AntennaID;
char *tid;
} rfid;
#if defined __cplusplus
extern "C"
#endif
void passInfo(rfid *p1);
- 用 C 语言实现你的函数。
// c.c
#include <stdio.h>
#include "shared.h"
void passInfo(rfid *p1)
{
// whatever you want
}
- 通过包含标头在C++中使用您的函数。
// cpp.cpp
#include <iostream>
#include "shared.h"
int test()
{
int myNum[10] = {10, 20, 20, 40, 50, 60, 70, 80, 90, 100};
for (int i = 0; i < 10; i++) {
AntennaID = myNum[i];
rfid p1 = {AntennaID, tid};
cout << "roll no : " << p1.AntennaID << endl;
cout << "roll no : " << p1.tid << endl;
passInfo(&p1);
}
}
相关文章:
- 使用不带参数的函数访问结构元素
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 链表,反向函数,数据结构
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 特征::矩阵<双精度,1,3> 结构类型函数中的返回类型函数
- 需要帮助将结构数组传递给函数
- 使用cpp中的结构和函数的多个学生条目
- 如何传递带有通过引用传递的结构参数的函数?
- 在类构造函数中使用结构变量
- 在 c++ 中将变量作为结构构造函数中的引用传递
- 在类构造函数中定义结构变量的参数
- 如何在模板类函数中分配结构值?
- 我应该在C++中将这些结构用作参数化构造函数吗?
- 给定一个C++嵌套的私有结构类型,是否有从文件范围静态函数访问它的策略
- 在结构外部调用指向函数的指针
- 函数:结构的数组
- C++错误:只能为对象和函数结构指定存储类
- 将libuv与函数结构一起使用,而不是函数回调
- 从c#调用c++函数-结构体,指针,函数指针
- 函数结构数组输入cin问题