4.8 Подсказки
- В какой степени рекомендации, сделанные с помощью спецификатора класса хранения
register, эффективны (C90 6.5.1, C99 и C11 6.7.1).Спецификатор
registerвлияет на генерацию кода только следующим образом:- При использовании в качестве части расширения регистровых переменных, см. Явные регистровые переменные.
- Когда
-O0используется, компилятор выделяет отдельную память стека для всех переменных, у которых нет спецификатора класса храненияregister; если указаноregister, переменная может иметь более короткий срок жизни, чем указывает код, и может никогда не быть помещена в память. - На некоторых редких x86-мишенях
setjmpне сохраняет регистры во всех обстоятельствах. В этих случаях GCC не выделяет никакие переменные в регистры, если они не помеченыregister.
- В какой степени рекомендации, сделанные с использованием спецификатора встраиваемых функций, эффективны (C99 и C11 6.7.4).
GCC не будет встраивать никакие функции, если используется опция
-fno-inlineили если используется-O0. В противном случае GCC все еще может не встроить функцию по многим причинам; опция-Winlineможет быть использована для определения, была ли функция встроена и, если нет, по какой причине.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/Hints-implementation.html