Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve
Dopo quasi un mese di utilizzo quotidiano e un viaggio medio-lungo in autostrada, raccontiamo pregi e limiti della Geely EX5: comfort premium, batteria LFP da 60,22 kWh, autonomia fino a 430 km e un prezzo che parte da 38.900 €
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Complete è un robot aspirapolvere che coniuga un'aspirazione potente e un lavaggio con rullo a logica di intelligenza artificiale che guida al meglio nella pulizia di casa: rulli e spazzole estensibili a pulire gli angoli e una base di ricarica che lava e ripristina il robot al emglio delle sue funzionalità dopo ogni azione di pulizia
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-06-2006, 17:12   #1
vermaccio
Senior Member
 
L'Avatar di vermaccio
 
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
vermaccio è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2006, 17:21   #2
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
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
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2006, 17:32   #3
vermaccio
Senior Member
 
L'Avatar di vermaccio
 
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
vermaccio è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2006, 19:16   #4
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2794
Puoi fare come ti ha detto ilsensine:

Codice:
typedef struct mio{
      double val1;
      double val2;
      };

struct mio funzionemia (double input) {...}
e lo richiami con
Codice:
struct mio output; 
output=funzionemia (...);
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2006, 21:34   #5
vermaccio
Senior Member
 
L'Avatar di vermaccio
 
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
vermaccio è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2006, 21:41   #6
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da vermaccio
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?
Se una funzione deve restituire 2 double, a me vengono in mente 3 soluzioni:

A)
Codice:
void funzione (double *pd1, double *pd2) { .. }
B)
Codice:
typedef struct
{
    double d1;
    double d2;
} DOUBLE2;

DOUBLE2 funzione (void) { .. }
C)
Codice:
typedef struct
{
    double d1;
    double d2;
} DOUBLE2;

void funzione (DOUBLE2 *pd2) { .. }
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2006, 21:52   #7
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da vermaccio
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?
Se usi il codice di wingman87:
primo = mio.val1;
secondo = mio.val2;
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2006, 07:44   #8
vermaccio
Senior Member
 
L'Avatar di vermaccio
 
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
vermaccio è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2006, 08:52   #9
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da vermaccio
in B) e C) che devo scrivere?
Caso B)
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 ();
}
Caso C)
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, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2006, 10:01   #10
sydarex
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.
sydarex è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship Google Pixel 11 Pro XL: fotocamera al top, batte...
Finiscono gli incentivi, crollano le ven...
Lo specchio M4 dell'Extremely Large Tele...
Un PC ricondizonato a prezzo super, perf...
TP-Link annuncia la prima gamma di dispo...
Google Pics sfida Canva con l'intelligen...
Blue Origin si aggiudica il contratto de...
Astra hackera meglio di un esperto umano...
Memorie 3D, AMD vede un possibile futuro...
Sparkle e Hellas Sat sperimentano con su...
Toyota propone un approccio 'ibrido' anc...
Huawei annuncia la serie Watch GT 7: sci...
Sonos 27 porta l'IA nel sistema audio di...
Quella solare è ufficialmente la ...
Sony WH-1000XM6 in offerta a 349€ in tut...
Sony introduce una nuova politica contro...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:42.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v