Go Down

Topic: [RISOLTO] Metodo con argomenti opzionali (Read 120 times) previous topic - next topic

Federico66

Jun 04, 2019, 09:06 am Last Edit: Jun 04, 2019, 07:30 pm by Federico66
Buongiorno,
ho letto che in C non è possibile definire un metodo con argomenti opzionali (valore di default), ma al contrario lo si può fare in C++, quindi ho pensato che in Arduino si potesse fare, ma invece sembra di no!

Non è fondamentale, ma esiste un modo per farlo? Forse va dichiarato in modo diverso?

Code: [Select]

//sendInfo();
//sendInfo(true);

void sendInfo(bool immediately = false) {
  if (immediately) {
   //...
  } else {
   //...
  }
}



TIA
Federico

Standardoil

Se ricordo bene devi mettere il prototipo a mano perché lo IDE sbaglia a farlo, se ci sono argomenti opzionali
Prima legge di Nelson (che sono io): Se vuoi il mio aiuto dimostrami almeno che hai letto il nostro "aiutateCi ad aiutarVi"

Non bado a studenti, che copino altrove

Tu hai problema-Io ti domando-Tu non mi rispondi: vuol dire che non ti serve più

Federico66

Se ricordo bene devi mettere il prototipo a mano perché lo IDE sbaglia a farlo, se ci sono argomenti opzionali
No so se ho capito!
Intendi qualcosa del genere?
Proverò

Code: [Select]


void sendInfo(bool immediately = false);


void sendInfo(bool immediately) {
  if (immediately) {
   //...
  } else {
   //...
  }
}

Standardoil

Sì, una cosa così
Il prototipo lo puoi anche mettere all'inizio, come K&R comanda
Prima legge di Nelson (che sono io): Se vuoi il mio aiuto dimostrami almeno che hai letto il nostro "aiutateCi ad aiutarVi"

Non bado a studenti, che copino altrove

Tu hai problema-Io ti domando-Tu non mi rispondi: vuol dire che non ti serve più

uwefed

#4
Jun 04, 2019, 10:54 am Last Edit: Jun 04, 2019, 10:54 am by uwefed
ci sono 2 possibilitá:

Scrivere 2 funzioni con lo stesso nome ma con numero di argomenti diversi. esempio:
void miafunzione(int variabileA);
void miafunzione(int variabileA, int variabileB);

oppure predefinire un argomento.
void miafunzione(int variabileA, int variabileB = 0);

Ciao Uwe

Federico66

Il prototipo lo puoi anche mettere all'inizio, come K&R comanda
Testato, funziona :-)

Grazie


...
oppure predefinire un argomento.
void miafunzione(int variabileA, int variabileB = 0);
...
Ho appena provato e l'unico modo che sembra funzionare è questo (a parte le due funzioni):

Code: [Select]

void sendInfo(bool immediately = false);

void sendInfo(bool immediately) {
  if (immediately) {
   //...
  } else {
   //...
  }
}


Grazie


Go Up