赞
踩
最近做项目,用到c++和c混合编程,其实想要实现需求很简单,在c文件中,循环调用类对象的方法:
main.c:
#include ontimer.h
int main(void) {
while(1){
/****
****在这里需要实现循环调用类对象的一个方法***
*****/
}
}
问题在于c不能直接去调用c++的函数,(因为c++继承于c,c++可以去调用c的函数,只需要加上 “extern c”,声明c函数即可)
从网上搜索解决办法:若想去调用c++的成员函数,需要提供一个简单的包装(wrapper)
https://www.cnblogs.com/johnnyflute/p/3535266.html
main.c:
#include ontimer.h
int main(void) {
while(1){
ontimer();
}
}
ontimer.h:
ifndef _ONTIMER_H
#define _ONTIMER_H
#ifdef __cplusplus
extern "C" {
#endif
void ontimer(void);
#ifdef __cplusplus
}
#endif
#endif
task.h:
class task
{
void deal_fault(void);//类中实现的一个方法
}
task.cpp:
#include "task.h"
#include "ontimer.h"
static task ptask;//实例化全局变量
void ontimer()
{
ptask.deal_fault();
}
void task::deal_fault()
{
printf("11111111\n");
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。