Есть ли конкретная причина, по которой стеки и кучи не упоминаются чаще в ресурсах C ++? - PullRequest
8 голосов
/ 15 марта 2019

В таких книгах, как «C # в двух словах», то, что выделяется в стеке и куче, вводится довольно быстро. Однако источники C ++, такие как «Принципы программирования и практика с использованием C ++», стандарт и cppreference.com, никогда не упоминают стеки или кучи в отношении выделения памяти - даже когда они говорят о длительности / классах хранения. Почему это? Является ли конкретная реализация тем, что распределяется там или где используются стеки и кучи одинаково для всех языков программирования? Если последнее верно, я бы понял отсутствие охвата того, где размещены различные объекты.

Ответы [ 2 ]

17 голосов
/ 15 марта 2019

Стеки и кучи не являются понятиями C ++ language (сохраните нечетную функцию в стандартной библиотеке C ++), но являются реализацией concept.

Вот почему книги C ++вместо этого будут использоваться стандартные термины автоматическое и динамическое хранилище.

Если вы читали книгу по проектированию и реализации компилятора, то вполне ожидали бы всеобъемлющей прозы стекови кучи.

0 голосов
/ 15 марта 2019

То, что вас интересует, это не книга о языке программирования C ++ / стандарте, а о реализации, например, стандартной библиотеки C ++. Там вы узнаете больше о распределении памяти в стеке / куче. Например, «Стандартная библиотека C ++: учебное пособие и справочник» от Николая М. Йосуттиса.

Поскольку C / C ++ также можно использовать на платформах без какой-либо поддержки динамического выделения памяти (для некоторых встроенных приложений компилятор даже запрещает использование new и malloc), в книгах по программированию на C ++ не так много ссылок.

...