我有一个以下格式的结构
typedef struct small {
int a;
} small;
typedef struct large {
small* s;
int b;
} large;
我想编写一个函数来修改变量a
。但是在函数声明/签名中,我希望使用small
以下方式
void modifyA(small* s, int newVal){
s->a = newVal;
}
我希望保持modifyA
函数的通用性,以便同时提供large
和small
。有没有办法实现这一点,将其large
作为modifyA
函数的输入?
例如,我想要
int main(){
large* l;
small* s;
int newVal = 10;
// assume all member of l and s are initialized properly
modifyA(&l->s, 10);
modifyA(s, 10);
return 0;
}