// declaration, 'a' is a type
a * b, c, *d;
// expression list 'x' is an var
x * y, z, u + v;

// expression or declaration
g * h();
// k&r func definition
p * q(n,m) e n,m {return 0;}
// s,t are vars not types, k&r with implicit int
r(s, t) {s * w; return 0;}
// ii,kk are vars, i,k are types
f(i ii, k kk) {i * jj; ii * jj; return 0;}

// tt can be typecustom or id
sizeof(tt);