It's a sequencing operator - not many C programmers even realise this, using it only to seperate declarations of variables etc.
For example
x = (f(), g());
AFAIR, the value of x is whatever g() returns, but f() is always called before g().
This seems pointless when you could write
f();
x = g();
but it does have it's uses :-)