Цитата
(DimG @ Oct 18 2006, 09:24) quotecСо своей стороны могу посоветовать следующее. Если вы не хотите объявлять переменную в качестве глобальной, то объявите ее через static. При этом компилятор если и будет использовать эту ячейку памяти, то при этом обязательно сохронит ее в стек. Только не совмещайте объявление переменной и ее инициализацию, т.к. переменные static инициализируются один раз.QuoteEndQuoteEEndА вот с этим не могу полностью согласиться. Статическая переменная отличается от глобальной лишь областью "видимости". "Видимость" у нее в пределах той функции в которой она объявлена. Ее значение в стек сохранять нет необходимости. Компилятор и так под нее выделяет постоянную ячейку ОЗУ, которая другими переменными не используется.
Это уже на усмотрение компилятора, ведь ничего не мешает компилятору использовать эту ячейку под локальную переменную, сохранив ее значение, а после восстановив. Правда сказать, что компилятор Keil имеет такую возможность не могу. Но если она есть то будет использована только при нехватке памяти, это точно.