Namespaces
Variants

Functions

From cppreference.net

Una función es una construcción del lenguaje C que asocia una instrucción compuesta (el cuerpo de la función) con un identificador (el nombre de la función). Cada programa en C comienza su ejecución desde la función main , que bien termina, o invoca otras funciones definidas por el usuario o de biblioteca.

// definición de función.
// define una función con el nombre "sum" y con el cuerpo "{ return x+y; }"
int sum(int x, int y) 
{
    return x + y;
}

Una función se introduce mediante una declaración de función o una definición de función .

Las funciones pueden aceptar cero o más parámetros , los cuales se inicializan a partir de los argumentos de un operador de llamada a función , y pueden devolver un valor a su invocador mediante la sentencia return .

int n = sum(1, 2); // los parámetros x e y se inicializan con los argumentos 1 y 2

El cuerpo de una función se proporciona en una definición de función . Cada función no- inline (desde C99) que se utiliza en una expresión (a menos que sea no evaluada ) debe estar definida solo una vez en un programa.

No hay funciones anidadas (excepto donde se permiten mediante extensiones no estándar del compilador): cada definición de función debe aparecer en el ámbito del archivo, y las funciones no tienen acceso a las variables locales del llamador:

int main(void) // definición de la función principal
{
    int sum(int, int); // declaración de función (puede aparecer en cualquier ámbito)
    int x = 1;  // variable local en main
    sum(1, 2); // llamada a función
//    int sum(int a, int b) // error: no hay funciones anidadas
//    {
//        return  a + b; 
//    }
}
int sum(int a, int b) // definición de función
{
//    return x + a + b; // error: x de main no es accesible dentro de sum
    return a + b;
}

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 6.7.7.4 Declaradores de función (incluyendo prototipos) (p: TBD)
  • 6.9.2 Definiciones de función (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 6.7.6.3 Declaradores de función (incluyendo prototipos) (p: 96-98)
  • 6.9.1 Definiciones de función (p: 113-115)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 6.7.6.3 Declaradores de función (incluyendo prototipos) (p: 133-136)
  • 6.9.1 Definiciones de función (p: 156-158)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 6.7.5.3 Declaradores de función (incluyendo prototipos) (p: 118-121)
  • 6.9.1 Definiciones de función (p: 141-143)
  • Estándar C89/C90 (ISO/IEC 9899:1990):
  • 3.5.4.3 Function declarators (including prototypes)
  • 3.7.1 Function definitions

Véase también

Documentación de C++ para Declarar funciones