Tecnología

Inicio

Cómo declarar las funciones en línea en C ++

En C ++, se designa una función de C ++ con la palabra clave en línea para realizar una solicitud al compilador para mejorar el desempeño de la función. Dependiendo de varios factores, el compilador puede integrar el código de la función en la corriente de código de la persona que llama y optimizar el código en línea expandido. Inline es una petición, no una garantía. El costo de procesos en línea es por lo general un aumento en el tamaño del código. Sigue leyendo para saber cómo declarar funciones en línea en C ++.

Instrucciones

1 Hacer funciones en línea de acuerdo con los siguientes criterios. El código dentro de los apoyos de la función no debe ser superior a tres líneas. llamadas del programa a la función deben contarse por cientos o más. Tenga en cuenta que inlining exceso de celo puede provocar un fenómeno llamado código de hinchazón. Esto significa demasiado ir a buscar en la memoria virtual, lo que puede ralentizar el rendimiento.

2 Poner la palabra clave en línea antes de la declaración de la función y definición para indicar que es en línea:

inline void func (int); // declaración

inline void func (int num) {

// 3 líneas de código

}

3 Inline la función miembro de una clase de C ++ al escribir el código de la función en el cuerpo de la clase. Esta es una forma alternativa de decirle al compilador que la función inline, pero tiene que ser un miembro de una clase de C ++:

Complejo de la clase {

público:

int init () {

// 3 líneas de código

}

4 Encontrar alternativas al uso de la macro definir, que es una alternativa a una función en línea. El macro permite definir el preprocesador para Inline-expandir una función. Las macros son inseguros, porque no hacen la comprobación de tipos:

definir avoidIfPoss (i) ((i)> = 0 (i): - (i))

Consejos y advertencias

  • Este tutorial se aplica igualmente a la programación C.
  • Si desea definir una función miembro como en línea usando la palabra clave, poner la palabra clave junto a la definición fuera del cuerpo de la clase, no al lado de la declaración dentro de la clase.
  • Si el sistema dispone de 100 funciones, cada uno definido por 10 bytes de código ejecutable, y que llame a cada función en más de 100 puntos en su programa, esto aumentará su ejecutable por 100.000 bytes.
  • función línea podría aumentar el número de errores de caché. Un bucle puede acceder a muchas líneas de caché de memoria, lo que podría causar que la memoria caché de movimiento de piernas.