Прав компайлер...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено kost 01 октября 2004 г. 15:12
В ответ на: Всем здрасьте. Вопрос по Keil (+) отправлено ISD 01 октября 2004 г. 14:36

В С Кейл для 51 по умолчанию запрещены рекурсивные вызовы. Это связано с тем, что локальные переменные компилятор хранит не в стэке, а отводит для каждой функции статическую область памяти для их хранения. У Вас в функции F1 может вызываться, в т.ч., та же F1. Рекурсия получается. Есть способ, не помню каким заклинанием, сказать чтобы функция была рекурсивно-вызываемой. Но там генерится страшный код, медленный, большой, потребляющий больше ОЗУ. Кривовата 51 архитектура. У любого проца с нормальным стэком компиляторы С, по умолчанию, генерят функции допускающие рекурсию.

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

Ответы



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

E-mail: info@telesys.ru