Keil: управление оптимизацией с помощью директивы #pragma Печать
Добавил(а) microsin   

Директивой #pragma можно управлять уровнем оптимизации последующих функций.

Синтаксис:

#pragma Onum

Здесь nun это новый уровень оптимизации, число от 0 до 3.

Чтобы установить новый уровень оптимизации для всех последующих функций в модуле, используйте #pragma Onum. Например, при компиляции armcc -O1:

void function1(void)
{
   ...            // Оптимизировано на уровне O1 по умолчанию
                  // (из опции командной строки armcc -O1)
}
 
#pragma O3
void function2(void)
{
   ...            // Оптимизировано на уровне O3
}
 
void function3(void)
{
   ...            // Оптимизировано на уровне O3
}

Чтобы поменять уровень оптимизации по умолчанию только для одной функции, необходимо комбинировать #pragma Onum вместе с парой функций #pragma push и #pragma pop. Например, при компиляции armcc -O1:

void function1(void)
{
   ...            // Оптимизировано на уровне O1 по умолчанию
                  // (из опции командной строки armcc -O1)
}
 
#pragma push
#pragma O3
void function2(void)
{
   ...            // Оптимизировано на уровне O3
}
#pragma pop
 
void function3(void)
{
   ...            // Оптимизировано на уровне O1 по умолчанию
                  // (из опции командной строки armcc -O1)
}

Ограничения по использованию: pragma должна быть применена вне тела функции.

[Ссылки]

1. Keil Compiler User Guide #pragma Onum site:keil.com.