A passagem de valor por parâmetro, funciona da seguinte maneira:
* Uma função é declarada e nela possuí uma variável, como por exemplo:
void imprimir (int valor);
* Quando chamada essa função, será necessário passar um valor do mesmo tipo que a função exige, por exemplo:
* Verifique o resultado final no monitor serial:
A principal diferença entre a passagem por valor e por referência, é que por referência é passado o endereço da variável para a função, permitindo assim que a função altere o valor original:
void loop(){
int valor = 5;
imprimir (valor);
imprimir (5);
}
* Nos dois casos mostrado acima estão corretos, tanto passando uma variável, como passando um valor direto. A diferença da passagem de valor por parâmetro é que neste caso, a função imprimir pode alterar o valor dentro da função, que não irá comprometer o dado real, como por exemplo:void setup(){
Serial.begin (9600);
}
void loop(){
int valor = 5;
imprimir (valor);
Serial.print("Dentro do voidloop:");
Serial.println(valor);
}
void imprimir (int valor){
Serial.print("Dentro de imprimir:");
Serial.println(valor);
valor++;
Serial.print("Dentro de imprimir, após incremento:");
Serial.println(valor);
}
* Verifique o resultado final no monitor serial:
void setup (){
Serial.begin(9600);
}
void loop(){
int valor;
valor = 5;
Serial.print("Dentro do voidloop:");
Serial.println(valor);
imprimir(&valor);
Serial.print("Dentro do voidloop, apos incremento:");
Serial.println(valor);
}
void imprimir (int *valor){
Serial.print("Dentro de imprimir:");
Serial.println(*valor);
*valor = *valor + 1;
}
* Verifique o resultado no Monitor Serial: