Functions
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
|