/* draws a point at 10, 5 */
struct point p;
p.x = 10;
p.y = 5;
draw(p);
I wish that would be a bit more 'modern', for instance:
struct point p = {
.x = 10,
.y = 5
};
draw(p);
...or even:
draw((struct point){ .x = 10, .y = 5 });
...main reason being that this avoids any accidents with unitialized data if the struct grows (the compound literal initialization makes sure that any struct members that are not mentioned are set to zero, while with the 'old school' approach you might end up with random junk in the struct).