De todas formas tampoco tiene claro como funciona el paso de parámetros a una función.
Ya son unos cuántos que confunden parámetros de función con declaración de variables locales. Si su estudio viene del mismo sitio, en dónde sea que lo hagan, dan las clases muy mal.
Orb, cuándo tu función está declarada cómo
En cambio si quisieras que a y b formaran parte de la función pero no deben ser usadas para pasar parámetros en ella:
Hacer algo como lo que has puesto:
Es una mala práctica ya que, sea lo que sea que has recibido por a y b, lo sustituyes por tus propios datos. Tu dirás: si así funciona, ¿porqué cambiar? La razón es que para llamar a la función debes pasarle tantos argumentos como así la hayas definido, además si la usa otra persona que no eres tú esperará que funcione de una forma cuándo se encontrará con resultados extraños porqué machacas lo que ella ha querido pasar.
Por otra parte tu función retorna un valor entero. Cuándo las funciones son declaradas con un valor de retorno éstas siempre deben terminar devolviendo un dato de ese tipo, aunqué después no lo uses, como ocurre casi siempre con printf (sí, printf devuelve un dato entero). Las únicas que están exentas de ello son las funciones con retorno tipo void.
Ya son unos cuántos que confunden parámetros de función con declaración de variables locales. Si su estudio viene del mismo sitio, en dónde sea que lo hagan, dan las clases muy mal.
Orb, cuándo tu función está declarada cómo
Código (c) [Seleccionar]
int operacion(int a, int b)
quiere decir que desde donde se la llame se le van a pasar dos enteros, el a y el b, para que dentro de la función se trabaje con ellos. Algo así como:Código (c) [Seleccionar]
int operacion(int a, int b) {
printf("La suma de a y b es %i.", a + b);
...
En cambio si quisieras que a y b formaran parte de la función pero no deben ser usadas para pasar parámetros en ella:
Código (c) [Seleccionar]
int operacion() {
int a = 2;
int b = 3;
printf("La suma de a y b es %i.", a + b);
...
Hacer algo como lo que has puesto:
Código (c) [Seleccionar]
int operacion(int a, int b) {
a = 2;
b = 3;
...
Es una mala práctica ya que, sea lo que sea que has recibido por a y b, lo sustituyes por tus propios datos. Tu dirás: si así funciona, ¿porqué cambiar? La razón es que para llamar a la función debes pasarle tantos argumentos como así la hayas definido, además si la usa otra persona que no eres tú esperará que funcione de una forma cuándo se encontrará con resultados extraños porqué machacas lo que ella ha querido pasar.
Por otra parte tu función retorna un valor entero. Cuándo las funciones son declaradas con un valor de retorno éstas siempre deben terminar devolviendo un dato de ese tipo, aunqué después no lo uses, como ocurre casi siempre con printf (sí, printf devuelve un dato entero). Las únicas que están exentas de ello son las funciones con retorno tipo void.