[an error occurred while processing this directive] [an error occurred while processing this directive]
Ну как работает с локальными переменными С-компилятор, например, для персоналки, я Вам недавно привел пример (и все там расжевал и в рот положил)- я не спорю что если рассматривать генерацию кода для ПЭВМ, то Вы совершенно правы (+).
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено просто так 19 сентября 2001 г. 15:26
В ответ на: братва, которая придумала С (Керниган и товарисчи), уделяла внимание и тому отправлено yes 19 сентября 2001 г. 14:14

Но в общем в этой конфе тусуется народ, который часто пользуется именно "ИСКЛЮЧИТЕЛЬНЫМИ случаями (ПИК, 51, ????)" , так что я и вынес на обсуждение именно такие компиляторы.
Согласитесь, что для процессоров с такой архитектурой, как PIC (где стек - только для адресов функций !!!) ЕДИНСТВЕННЫЙ путь - считать размер локальных переменных на этапе линковки - иначе вы не сможете узнать, хватает ли вам памяти или нет. Кстати, HI-TECH ругается, если слишком много вложенных локальных переменных - говорит, что не хватает памяти - поэтому в нем используется такой механизм.
А вот AVR - покруче архитектура, и поэтому (как недавно сообщили) - там динамический стек (что само по себе очень приятно). Только вот вопрос - если есть возможность у компилятора "ругаться" на недопустимо маленький размер памяти под локальные переменные , то все равно как-то надо контролировать его размерчик на этапе линковки.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru