如何在C中重现C++类样式的get函数?

the*_*tna 0 c c++

我想在C程序中从C++重现get style函数.在C++,类中可以有两个函数来分配值和设置值.在C中有没有相同的方法?可以说我有以下结构:

typedef struct test_help
{
    int      a;
    void** numArrays;
    struct test_help *next;  
} help_node, *help;
Run Code Online (Sandbox Code Playgroud)

我有以下函数来访问结构的值:

int access_int(help damaru) {
    return damaru->a;
}
Run Code Online (Sandbox Code Playgroud)

所以我可以从结构中分配整数的值:

 int y = access_int(damaru);
Run Code Online (Sandbox Code Playgroud)

但我想将值分配给结构的成员,如:

help damaru;
int z=10;
damaru->int = z;
Run Code Online (Sandbox Code Playgroud)

我想摆脱使用->.我想编写一个类似于assign函数的函数.我想提醒您,在左侧使用访问功能会显示警告.

Pau*_*nta 5

不要试图将C扭曲成像C++一样工作,它们是两种完全不同的语言.除非您需要执行的不仅仅是简单的赋值,否则只需直接修改变量即可.无论如何,是的,你展示了它的方式:

typedef struct {
    int val;
} MyType;

void MyType_SetVal(MyType *mt, int i) {
    mt->val = /* some complex expression involving `i` */;
}
Run Code Online (Sandbox Code Playgroud)