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-13.3.0/gcc/Hints-implementation.html