GCC: вопросы, касающиеся определения «оптимизации» и «встроенного» GCC - PullRequest
1 голос
/ 16 мая 2011

Мои вопросы следующие:

1) Если я скажу GCC не оптимизировать код, существующий в конкретном исходном файле, то это будет применено ко всем функциям, вызываемым изэтот файл (который может находиться в разных исходных файлах) или только для функций / кода, которые существуют локально в этом файле?То есть будет ли оптимизация файла иметь рекурсивное поведение или нет?

2) Если я объявлю функцию как встроенную (чтобы я не получил служебную информацию), и эта функция будет объявлена ​​в файле, в которомЯ заставляю GCC не применять оптимизацию, тогда, если я вызову функцию из другого исходного файла, получу ли я по-прежнему эффект без оптимизации?

Любая помощь будет высоко оценена.

Ответы [ 2 ]

0 голосов
/ 16 мая 2011

Оптимизация не является рекурсивной - если вы не оптимизируете файл, то это только функции в этом файле, которые не будут оптимизированы. Что касается inline, функция может быть встроена в файл, в который она скомпилирована, обычно через механизм #include, если это то, что вы запрашиваете (что далеко не ясно).

0 голосов
/ 16 мая 2011

На вопрос № 2:

Если вы включите заголовок vile с встроенной функцией в другом источнике, то функция будет встроенной, нет смысла компилировать ее до того, как она встроена.

...