albertf1970
albertf1970:
Ando un poco liado con las funciones para Arduino, yo vengo del mundo de la programación en VB y con el C me lío :-(, por mas que busco en Internet no aclaro mis dudas, a ver si alguien me puede responder un par de dudas...
El uso de parámetros es igual en todos los lenguajes con independencia de si se declara la variable dentro o no. Si sólo conoces VB (lengauje de alto nivel, osea el fácil) lo más raro que encontrarás son los punteros y acabar todo en (punto y coma) ; pero estas cuestiones son similares en otros lenguajes de bajo nivel similares o basados en C.
Confío en que cuando hablas de VB te refieras a un .NET porque el VB (visual basic) como tal, creo que tuvo su última versión en el 6.0 y eso es de la época en la que programaba siendo menor de edad........ No quiero ni pensar los años de diferencia.
albertf1970
albertf1970:
A la hora de definir los parámetros que le pasamos a la función:
int var1; int var2; void funcion(var1,var2) { ordenes que ejecuto;}
es lo mismo que
void funcion(int var1, int var2); {ordenes que ejecuto}
(No, no es lo mismo)
El primero está mal por dos cuestiones, una práctica y otra de sintaxis.
Cuando se usan parámetros se da por hecho que no envías una variable global, porque no tiene sentido pasarla, la puedes llamar directamente desde la función sin más, y el fallo de sintaxis por el cual ni podrías ejecutarlo es que debes poner delante del parámetro el tipo de variable que pasas.
albertf1970
albertf1970:
Por otro lado, si los parámetros que le pase a una función son de un tipo, pongamos int por ejemplo, la función me puede devolver un valor char? seria algo como esto:
char mifuncion (int var1, int var2);{ordenes que ejecuto}
Por supuestísimo que NO
Ni siquiera en VB, una variable es de un tipo diferente salvo que se convierta en otra. Lenguajes "diferentes" donde las variables no son de un tipo y pueden comportarse de múltiples formas es PHP, pero ni en VB sucede eso.
Si pasas un int y quieres que sea un char debes convertirlo.
Otra diferencia que encontrarás con otros lenguajes es que debes definir el tipo de variable que se retorna (si vas a hacer un return) al inicio de la función, no basta sólo con poner un return.
int funcion(int var1, int var2) {
return var1 + var2;
}