It seems sizeof is not a real function?
for example, if you write like this:
int i=0; printf(\"%d\\n\", sizeof(++i)); printf(\"%d\\n\", i); >
int i=0; printf(\"%d\\n\", sizeof(++i)); printf(\"%d\\n\", i);
The size of returned type is calculated at compile time, there is no runtime overhead