What does “Memory allocated at compile time” really mean?

W językach programowania takich jak C i C ++ ludzie często odwołują się do statycznej i dynamicznej alokacji pamięci. Rozumiem koncepcję, ale wyrażenie „Cała pamięć została przydzielona (zarezerwowana) podczas kompilacji” zawsze mnie myli.

Kompilacja, jak rozumiem, konwertuje wysoki poziom kodu C / C ++ na język maszynowy i generuje plik wykonywalny. Jak pamięć jest „przydzielana” w skompilowanym pliku? Czy pamięć nie jest zawsze przydzielana w pamięci RAM ze wszystkimi elementami zarządzania pamięcią wirtualną?

Czy przydział pamięci z definicji nie jest pojęciem wykonawczym?

Jeśli zrobię statycznie przydzieloną zmienną o wielkości 1 KB w moim kodzie C / C ++, czy zwiększy to rozmiar pliku wykonywalnego o tę samą kwotę?

Jest to jedna ze stron, na których wyrażenie jest używane pod nagłówkiem „Przydział statyczny”.

Powrót do podstaw: alokacja pamięci, spacer po historii

questionAnswers(12)

yourAnswerToTheQuestion