Unfortunately this is not supported in C and never will be. C is the kind of programming language that allows you do to almost everything, this means everything manually!
Best you can do is create functions of macros that autoupdate this for you:
void update_x(vector2d_t * v, double x) {
v->x = x;
v->magn = sqrt(pow(x,2) + pow(v->y, 2));
}