Volver a la página principal
lunes 13 enero 2025
5

¿Cómo usar funciones inline en C?

Las funciones inline se declaran con la palabra clave inline. Cuando se marca una función como inline, el compilador intenta insertar el código de la función directamente en el lugar donde se llama, eliminando el salto de la llamada y mejorando la velocidad de ejecución. Sin embargo, esto depende de la decisión del compilador, que puede ignorar la instrucción si no es eficiente hacerlo.

Sintaxis de una función inline

inline tipo_retorno nombre_funcion(argumentos) {
    // Código de la función
}

Ejemplo de uso

#include <stdio.h>

// Declaración de una función inline
inline int cuadrado(int x) {
    return x * x;
}

int main() {
    int num = 5;
    printf("El cuadrado de %d es %d\n", num, cuadrado(num));
    return 0;
}

En este ejemplo, la función cuadrado es inline y calcula el cuadrado de un número sin el overhead de una llamada de función.

Ventajas y desventajas

Ventajas:

  • Reducción del tiempo de ejecución al eliminar llamadas a funciones.
  • Aumenta la eficiencia en funciones cortas y usadas frecuentemente.

Desventajas:

  • Incremento del tamaño del código binario (code bloat) si se usa en exceso.
  • Puede dificultar la depuración.

Tabla de parámetros (si aplica)

Elemento Descripción
inline Modificador para declarar la función.
tipo_retorno Tipo de dato que retorna la función.
nombre_función Nombre de la función inline.
argumentos Lista de parámetros que recibe.

Más ejemplos

Inline con funciones matemáticas

#include <stdio.h>

inline float area_circulo(float radio) {
    return 3.14159f * radio * radio;
}

int main() {
    float radio = 4.5;
    printf("El área del círculo es %.2f\n", area_circulo(radio));
    return 0;
}

Inline para operaciones lógicas

inline int es_par(int x) {
    return x % 2 == 0;
}

int main() {
    int numero = 8;
    if (es_par(numero)) {
        printf("%d es par.\n", numero);
    } else {
        printf("%d es impar.\n", numero);
    }
    return 0;
}
Etiquetas:
C
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer