Here's a C99 trick I learned recently, known as compound literals. Say you have a function that takes a struct as a parameter:

typedef struct {int x; int y;} Point;

void plot(Point p);

Normally, to call this function, you have to create a Point first:

Point p = {1, 2};

plot(p);

But, with compound literals, you can declare p anonymously:

plot((Point){1, 2});

Does anyone else have neat C tricks to share?