我有一项任务,我必须将类似c ++的程序转换为c程序。
如果我有类似
的话class B {
int var;
int somefunction(){
some code here
}
}
它会改为
struct B{
int var;
}
int somefunction(){
some code here
}
基本上,我每次看到它时都必须将class
更改为struct
,如果有一个函数,我现在必须将它移出结构体外。
做这样的事情的最佳方法是什么?我得到了这个理论,但不确定如何接近它。
答案 0 :(得分:4)
通常,您将指向结构的指针传递给函数。例如,如果你有这个C ++代码:
class A {
private:
int x;
public:
A() : x(0) {
}
void incx() {
x++;
}
};
等效的C代码将是:
struct A {
int x;
};
void init( struct A * a ) { // replaces constructor
a->x = 0;
}
void incx( struct A * a ) {
a->x++;
}
然后像这样称呼它:
struct A a;
init( & a );
incx( & a );
但我不得不问你为什么认为你需要将C ++代码转换为C?