Der Aufruf von sizeof bei einem Funktionsaufruf überspringt den tatsächlichen Aufruf der Funktion!}
Ich bin zufällig über diesen Code gestolpert.
<code>int x(int a){ std::cout<<a<<std::endl; return a + 1; } int main() { std::cout<<sizeof(x(20))<<std::endl; return 0; } </code>
Ich habe erwartet, dass es 20 nach 4 druckt. Aber es druckt nur 4. Warum passiert es so? Ist es nicht falsch, eine Funktion zu optimieren, die einen Nebeneffekt hat (Drucken auf E / A / Datei usw.)?