Вообще-то в стеке хранятся только локальные переменные, глобальные хранятся в основной памяти.
Это неверно, точнее не точно. Все параметры, передаваемые в функцию хранятся в стеке. Только сами данные классов хранятся в куче, а в стеке только ссылка на их. А данные структур напрямую передаются в стеке. Тут, кстати, палка о двух концах. Внутри функции доступ к данным переданной структуры производится быстрее. Однако собственно для передачи структуры в функцию ее данные нужно скопировать в стек, что медленнее, чем скопировать одну ссылку на данные.