|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
|
[c++] una function può restituire più di un output?
ovvero anzoche definire
double funzionemia (double input) {...} e richiamarla con double output; output=unzionemia (...); si può fare, nel caso io abbia bisogno che la mia funzione restituisca due valori (double, double) altrafunzionemia (double input) {...} e richiamarla con double output1; double output2; (output1, output2)=altrafunzionemia(...) ????? so che in uscita non può dare un vettore. ma due double separati?
__________________
..strisc...strisc...oooooOOoooO http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Puoi restituire un oggetto complesso (struttura, classe...)
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
|
uffa!
quindi come al solito gli passo in ingresso il puntatore ad un array di due double e poi da detnro la funziona assegno i valori alle celle dell'array. che noia.... le variabili di appoggio si sprecano! double funzionemia (double input, double *output) {...} e richiamarla con double output[2]; output=unzionemia (..., &output[0]); certo che è una bella limitazione!!!!!
__________________
..strisc...strisc...oooooOOoooO http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2787
|
Puoi fare come ti ha detto ilsensine:
Codice:
typedef struct mio{
double val1;
double val2;
};
struct mio funzionemia (double input) {...}
Codice:
struct mio output; output=funzionemia (...); |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
|
e se voglio poi asssegnare i due double della struttura a due double esterni come faccio?
double primo; double secondo; primo=??? secondo=??? come li assegno se voglio assegnare primo=val1 e secondo=val2?
__________________
..strisc...strisc...oooooOOoooO http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
A) Codice:
void funzione (double *pd1, double *pd2) { .. }
Codice:
typedef struct
{
double d1;
double d2;
} DOUBLE2;
DOUBLE2 funzione (void) { .. }
Codice:
typedef struct
{
double d1;
double d2;
} DOUBLE2;
void funzione (DOUBLE2 *pd2) { .. }
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
primo = mio.val1; secondo = mio.val2; |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
|
e per il caso di andbin, casi B) e C)?
da dentro la funzione come assegno valori al contenuto della struttura che ho passato alla funzione? se ad esempio dentro la funzione voglio passare: soluz1 al primo double della struttura soluz2 al secondo double della struttura in B) e C) che devo scrivere? e nel caso B) devo mettere a fine funzione return(struttura); ?
__________________
..strisc...strisc...oooooOOoooO http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII |
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Codice:
typedef struct
{
double d1;
double d2;
} DOUBLE2;
DOUBLE2 funzione (void)
{
DOUBLE2 dbl2;
dbl2.d1 = 1.5;
dbl2.d2 = 5.5;
return dbl2;
}
int main (void)
{
DOUBLE2 dbl2;
dbl2 = funzione ();
}
Codice:
typedef struct
{
double d1;
double d2;
} DOUBLE2;
void funzione (DOUBLE2 *pdbl2)
{
pdbl2->d1 = 1.5;
pdbl2->d2 = 5.5;
}
int main (void)
{
DOUBLE2 dbl2;
funzione (&dbl2);
}
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#10 |
|
Junior Member
Iscritto dal: Dec 2005
Messaggi: 14
|
I puntatori ci sono apposta.
Passi alla funzione 2 puntatori a double e la funzione ci scrive i risultati. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:21.



















