将类转换为struct

时间:2017-01-17 21:43:22

标签: c++ parsing code-conversion

我有一项任务,我必须将类似c ++的程序转换为c程序。

如果我有类似

的话
class B {
    int var;
    int somefunction(){
        some code here
    }
}

它会改为

struct B{
    int var;
}

int somefunction(){
    some code here
}

基本上,我每次看到它时都必须将class更改为struct,如果有一个函数,我现在必须将它移出结构体外。

做这样的事情的最佳方法是什么?我得到了这个理论,但不确定如何接近它。

1 个答案:

答案 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?