Nikolay
Подскажите. Правильно ли утверждение, что размещение памяти на стеке для функции определяется во время компиляции. Ну вот в простейшем примере ясно ,что если сразу идёт int x; int y, то можно на стэке выделать по 4 байта для каждой переменной , но если это под условием if? Например так if (something){ intx,y ....} else { double z ...} тут же получается ,что на этапе компиляции нельзя понять сколько памяти понадобится на стеке ?
Утверждение правильное. Память для x, y с одной стороны и z - с другой (в примере с if) можеть быть выделена в одном и том же месте, поскольку их области видимости не пересекаются. Но может быть и в разных местах - зависит от реализации. В любом случае во время компиляции.