Директивой #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. |