Eu tenho uma estrutura no seguinte formato
typedef struct small {
int a;
} small;
typedef struct large {
small* s;
int b;
} large;
Eu gostaria de escrever uma função que modifique a variável a
. No entanto, na declaração/assinatura da função eu gostaria de ter small
nos moldes de
void modifyA(small* s, int newVal){
s->a = newVal;
}
Eu gostaria de manter a modifyA
função comum para ser fornecida com large
e small
. Existe uma maneira de conseguir isso large
como entrada para modifyA
funcionar?
Por exemplo, eu quero
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;
}