typedef struct { int x; int y; } point; int fst_field(point p) { return p.x; } int ptr_fst_field(point *p) { return p->x; } int snd_field(point p) { return p.y; } int ptr_snd_field(point *p) { return p->y; }