name keywords google etiquetas ejemplos description c++ optimization gcc inline optimizer-hints

c++ - keywords - meta tags ejemplos



¿GCC en línea C++ funciona sin la palabra clave ''en línea''? (5)

¿Alguna vez GCC, al compilar el código C ++, trata de optimizar la velocidad eligiendo funciones en línea que no están marcadas con la palabra clave inline ?



Sí, especialmente si tiene un alto nivel de optimizaciones habilitadas.

Hay un indicador que puede proporcionar al compilador para desactivar esto: -fno-inline-functions.


Sí, lo hace, aunque también generará un cuerpo de función no en inline funciones no en inline no static ya que esto es necesario para llamadas de otras unidades de traducción.

Para las funciones en inline , es un error no proporcionar un cuerpo de función si la función se utiliza en cualquier unidad de traducción particular, así que esto no es un problema.


Sí. Cualquier compilador puede en línea cualquier función cuando crea que es una buena idea. GCC también lo hace.

En el nivel de optimización de -O2, la alineación se realiza cuando el compilador cree que vale la pena hacerlo (se usa una heurística) y si no aumenta el tamaño del código. En -O3 se hace cada vez que el compilador cree que vale la pena hacerlo, independientemente de si aumentará el tamaño del código. Además, en todos los niveles de optimización (optimización habilitada), las funciones estáticas que se invocan solo una vez están en línea.


Si usa ''-finline-functions'' o ''-O3'', insertará funciones. También puede usar ''-finline_limit = N'' para sintonizar la cantidad de línea entrante que tiene.