Resumen

Aprende a manejar funciones en C con confianza: desde una función simple que no recibe argumentos ni retorna valores, hasta una versión que acepta parámetros y devuelve un resultado. Con ejemplos breves, errores comunes y buenas prácticas, verás cómo organizar la declaración, la llamada y la definición sin perderte.

¿Cómo se estructura una función void sin argumentos en C?

Una función void no retorna valor. Es útil cuando solo necesitas ejecutar una acción, como imprimir un resultado. También puedes indicar explícitamente que no recibe argumentos con void en la lista de parámetros.

  • Estructura base: declaración, llamada y definición en orden claro.
  • Buena práctica: usar void en los paréntesis si no hay argumentos.
  • Librería esencial: include de stdio.h para usar printf.

¿Ejemplo de código con void demo?

#include <stdio.h>

void demo(void); // declaración

int main(void) {
    demo(); // llamada
    return 0;
}

void demo(void) { // definición
    int A, B, sum;
    A = 100;
    B = 100;
    sum = A + B;
    printf("The result is %d\n", sum);
}
  • Error común: "sum undeclared first use" aparece si olvidas declarar la variable antes de usarla.
  • Hábito clave: leer la consola y corregir nombres y tipos en cuanto el compilador lo indique.

¿Cómo declarar, llamar y definir funciones de forma correcta?

En C, el flujo sano es claro: declaras la función (prototipo), la llamas donde la necesitas y la defines con su cuerpo. Si cambias el nombre de la función o de una variable, actualiza todas las referencias para evitar errores en impresión o en enlazado.

  • Coherencia de nombres: si cambias de sum a add, actualiza printf y llamadas.
  • Organización: ubica la declaración arriba, la llamada en main y la definición al final o en otro archivo.
  • Lectura de errores: la terminal suele indicar exactamente qué línea y símbolo falló.

¿Qué cambia al pasar argumentos y usar return en C?

Cuando una función recibe parámetros, encapsula la lógica y evita variables globales innecesarias. Si además retorna un valor, separas el cálculo de la presentación, lo que facilita pruebas y reutilización.

¿Ejemplo con parámetros y return de tipo int?

#include <stdio.h>

int add(int A, int B); // declaración con return type int

int main(void) {
    int result = add(100, 100); // llamada con argumentos directos
    printf("The result is %d\n", result);
    return 0;
}

int add(int A, int B) { // definición que retorna valor
    // printf dentro se eliminó para separar cálculo de salida
    return A + B;
}
  • Claves:
  • return type correcto: usa int si vas a retornar un entero.
  • Evita imprimir variables que no existen en el alcance de main.
  • Puedes pasar valores directos o variables ya definidas.
  • Aprendizajes del error: si imprimes un identificador no disponible en ese contexto, verás números inesperados o comportamiento indefinido; captura el retorno en una variable y luego imprime esa variable.

Habilidades y conceptos trabajados dentro del código: funciones void, funciones con return, parámetros por valor, prototipos de función, alcance de variables, lectura de errores de compilación, uso de printf, estilo y sangría de llaves y nomenclatura consistente. Próximo paso natural: explorar paso de argumentos por valor y por referencia para comprender cómo C gestiona la memoria y las modificaciones.

¿Tienes una forma preferida de organizar declaración, llamada y definición? Comparte tu enfoque o dudas en los comentarios.