sizeof()って、コンパイル時にサイズ解釈してるの?

int a;
a = sizeof(int);

これは、
int a;
a = 4;
に、置き換わってるという事でOK?
(intが4byteの時)

なんか、関数に見せかけて、関数じゃないのかな・・・?