Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-01-2004, 12:41   #1
DavidTwister
Senior Member
 
L'Avatar di DavidTwister
 
Iscritto dal: Mar 2003
Città: Roma
Messaggi: 1529
Passaggi di strutture e membri di strutture a funzioni in C!

Allora ragazzi,stò preparando l'esame di Programmazione in C....leggo sul libro:
"Le strutture possono essere passate alle funzioni fornendo:
1) i singoli membri;
2)l'intera struttura;
3)un puntatore alla stessa struttura".
Nel caso si passi una struttura o i suoi singoli membri,questi verranno passati per valore; al fine di passarli x riferimento, dovrete passare alla funzione l'indirizzo della variabile di struttura.


Le domande sono:

1)se voglio passare alla funzione, ad esempio, un membro di una variabile di tipo struttura per RIFERIMENTO, qual'è il modo corretto???
2)Mi fate un esempio in linguaggio C di una funzione che riceve come argomento una struttura intera1 e un membro di una struttura2 prima per riferimento, e poi della stessa funzione che le riceve per valore?

Grazie!
__________________

Ho concluso trattative positive con: Miky71- Maxus- Echirulli (x2)- Giullare- Flyawayrm- Astro76- Marlom- Manuel78- Sclergio- The Saint- Ippo 2001- Fabietto_18.
LA DROGA NON E' MAI LEGGERA: E' DROGA.
DavidTwister è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2004, 13:01   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Scrivendomi un PVT hai solatanto aumentato al tua attesa...ti stavo rispondendo quando mi è arrivato il dialogo di apertura dei messaggi privati E' inutile mandarmi i PVT...i emssaggi della sezione me li leggo tutti

Codice:
struct s {
   int a;
   char b;
};

void f_valore_struttura(struct s st)
{
    printf("%d %c\n", st.a, st.b);
}

void f_riferimento_struttura(struct s *pst)
{
    printf("%d %c\n", pst->a, pst->b);
}

void f_valore_membri(int ma, char mb)
{
    printf("%d %c\n", ma, mb);
}

void f_riferimento_membri(int *pma, char *pmb)
{
    printf("%d %c\n", *pma, *pmb);
}

int main()
{
   struct s pippo;
   pippo.a = 10;
   pippo.b = 'a';
   
   f_valore_struttura(pippo);
   f_riferimento_struttura(&pippo);
   f_valore_membri(pippo.a, pippo.b);
   f_riferimento_membri(&pippo.a, &pippo.b);

   return 0;
}
Sinceramente preferisco chiamare quello che tu chiami "per riferimento" passaggio "per indirizzo"...
Se poi un giorno vedrai il C++ (o una versione aggiornata del C allo standard C99) capirai il perchè...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2004, 13:05   #3
DavidTwister
Senior Member
 
L'Avatar di DavidTwister
 
Iscritto dal: Mar 2003
Città: Roma
Messaggi: 1529
ti ringrazio x gli esempi...ora me li leggo per bene e se ho qualche dubbio lo posto sul 3d...scusa se ti ho mandato un pvt ma il primo appello lo avrei domani...ecco il perchè della fretta!!!
__________________

Ho concluso trattative positive con: Miky71- Maxus- Echirulli (x2)- Giullare- Flyawayrm- Astro76- Marlom- Manuel78- Sclergio- The Saint- Ippo 2001- Fabietto_18.
LA DROGA NON E' MAI LEGGERA: E' DROGA.
DavidTwister è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2004, 13:13   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Voi avete fatto così quello che chiamate "passaggio per riferimento" ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2004, 13:17   #5
DavidTwister
Senior Member
 
L'Avatar di DavidTwister
 
Iscritto dal: Mar 2003
Città: Roma
Messaggi: 1529
Quote:
Originariamente inviato da cionci
Voi avete fatto così quello che chiamate "passaggio per riferimento" ?
durante il corso nn sò come abbiano fatto,perchè per motivi di lavoro non l'ho potuto seguire...ora controllo meglio sui miei due libri...però non è che sia spiegato un gran ch+ l'uso delle strutture con le funzioni su questi libri...

ps: perchè c'è un altro metodo per passarle "per riferimento"?
__________________

Ho concluso trattative positive con: Miky71- Maxus- Echirulli (x2)- Giullare- Flyawayrm- Astro76- Marlom- Manuel78- Sclergio- The Saint- Ippo 2001- Fabietto_18.
LA DROGA NON E' MAI LEGGERA: E' DROGA.
DavidTwister è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2004, 13:19   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da DavidTwister
ps: perchè c'è un altro metodo per passarle "per riferimento"?
Se il libro trattasse l'utlimo standard del C (1999) mi sembra di sì...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2004, 13:27   #7
DavidTwister
Senior Member
 
L'Avatar di DavidTwister
 
Iscritto dal: Mar 2003
Città: Roma
Messaggi: 1529
Quote:
Originariamente inviato da cionci
Se il libro trattasse l'utlimo standard del C (1999) mi sembra di sì...
su entrambe i libri c'è scritto che è stato usato lo standard ANSI/C : 1990....

cmq qual'è il nuovo metodo introdotto???
__________________

Ho concluso trattative positive con: Miky71- Maxus- Echirulli (x2)- Giullare- Flyawayrm- Astro76- Marlom- Manuel78- Sclergio- The Saint- Ippo 2001- Fabietto_18.
LA DROGA NON E' MAI LEGGERA: E' DROGA.
DavidTwister è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2004, 15:27   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Vabbè...non ti interessa... Ti servirà quando e se farai il C++
Comunque si chiama passaggio per riferimento...
Codice:
void f(int &i)
{
   i = 0;
}

int a = 10;
f(a);
//a questo punto i è uguale a 0...
Comqunue non sono sicuro che sia stato inserito nello standard del C99... Sinceramente non me lo ricordo...se qualcuno ne sa di più che lo dica
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2004, 21:47   #9
DavidTwister
Senior Member
 
L'Avatar di DavidTwister
 
Iscritto dal: Mar 2003
Città: Roma
Messaggi: 1529
Quote:
Originariamente inviato da cionci
Vabbè...non ti interessa... Ti servirà quando e se farai il C++
Comunque si chiama passaggio per riferimento...
Codice:
void f(int &i)
{
   i = 0;
}

int a = 10;
f(a);
//a questo punto i è uguale a 0...
Comqunue non sono sicuro che sia stato inserito nello standard del C99... Sinceramente non me lo ricordo...se qualcuno ne sa di più che lo dica
veramente strano come uso....cmq nello standard ANSI C che stiamo studiano questo modo non c'è proprio...
__________________

Ho concluso trattative positive con: Miky71- Maxus- Echirulli (x2)- Giullare- Flyawayrm- Astro76- Marlom- Manuel78- Sclergio- The Saint- Ippo 2001- Fabietto_18.
LA DROGA NON E' MAI LEGGERA: E' DROGA.
DavidTwister è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2004, 21:49   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
In pratica i è un alias di a... A fine del codice assembly generato è la stessa cosa del passaggio per indirizzo
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 15-01-2004, 19:27   #11
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
Quote:
Originariamente inviato da cionci
Vabbè...non ti interessa... Ti servirà quando e se farai il C++
Comunque si chiama passaggio per riferimento...
Codice:
void f(int &i)
{
   i = 0;
}

int a = 10;
f(a);
//a questo punto i è uguale a 0...
Comqunue non sono sicuro che sia stato inserito nello standard del C99... Sinceramente non me lo ricordo...se qualcuno ne sa di più che lo dica
cionci scusa ma nel parametro della funzione f perchè dichiari int &i?? non dovresti dischiarare int *i per dire che si tratta di un puntatore??
Codice:
void f(int *i)
{
   *i = 0;
}
??
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2004, 02:58   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
E' il passaggio per riferimento del C++
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2004, 13:08   #13
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
ops scusa non lo sapevo! non conosco il c++! visto che nel titolo del thread si parlava di c pensavo che tu avessi voluto scrivere il codice in c...
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2004, 13:10   #14
DavidTwister
Senior Member
 
L'Avatar di DavidTwister
 
Iscritto dal: Mar 2003
Città: Roma
Messaggi: 1529
Quote:
Originariamente inviato da VegetaSSJ5
ops scusa non lo sapevo! non conosco il c++! visto che nel titolo del thread si parlava di c pensavo che tu avessi voluto scrivere il codice in c...
da quanto ho capito, quel passaggio di riferimento è in C(l'ultimo standard ANSI), ma dovrebbe essere originario del C++...cionci, è cosi?
__________________

Ho concluso trattative positive con: Miky71- Maxus- Echirulli (x2)- Giullare- Flyawayrm- Astro76- Marlom- Manuel78- Sclergio- The Saint- Ippo 2001- Fabietto_18.
LA DROGA NON E' MAI LEGGERA: E' DROGA.
DavidTwister è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2004, 13:16   #15
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
A me risulta che in c l'unico passaggio per riferimento possibile è utilizzare i puntatori...
(in effetti il c++ implementa internamente il passaggio per riferimento tramite puntatori)
__________________
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 16-01-2004, 13:18   #16
DavidTwister
Senior Member
 
L'Avatar di DavidTwister
 
Iscritto dal: Mar 2003
Città: Roma
Messaggi: 1529
Quote:
Originariamente inviato da ilsensine
A me risulta che in c l'unico passaggio per riferimento possibile è utilizzare i puntatori...
(in effetti il c++ implementa internamente il passaggio per riferimento tramite puntatori)
ah...no perchè sembra con lo standard ANSI C del 99 (non è sicuro dell'anno), si possa effettuare anche nel modo descritto....chi sappia qualcosa di + si faccia vivo!
__________________

Ho concluso trattative positive con: Miky71- Maxus- Echirulli (x2)- Giullare- Flyawayrm- Astro76- Marlom- Manuel78- Sclergio- The Saint- Ippo 2001- Fabietto_18.
LA DROGA NON E' MAI LEGGERA: E' DROGA.
DavidTwister è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2004, 15:24   #17
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Non sono sicuro che ci sia...mi sembrava che fosse stato introdotto nel C99... Purtroppo non ho ancora visto il C99

Sicuramente ilsensine ne sa di più...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2004, 15:25   #18
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Il gcc supporta molte cose del C99, ma il reference alla c++ no...
Non so se lo standard lo prevede, io personalmente non he ho mai sentito parlare.
__________________
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 16-01-2004, 15:27   #19
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Probabilmente ho fatto confusione io
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2004, 21:57   #20
xybercom
Senior Member
 
L'Avatar di xybercom
 
Iscritto dal: Dec 2000
Città: dintorni di Seregno (MI)
Messaggi: 312
Il passaggio per reference non è nel C99 mentre è standard nel C++ da almeno il 1994 (se non da quando hanno inventato il linguaggio).
__________________
powered by GNU/Linux [ Debian Sid ]
xybercom è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Artemis II: nuovo test prima del Wet Dre...
GTA 6 gratis se nasce un figlio il giorn...
Quasi la metà degli smartphone at...
DDR5 a 16 dollari al gigabyte: Framework...
Meno di 3kg per 'diventare' bionici: l'u...
Al regalo di San Valentino ci pensa HUAW...
Intel multata in India: 30 milioni di do...
Beast of Reincarnation ha una data di us...
Provati Reno15 e Reno15 FS: analisi comp...
L'Europa sfida la Cina sul litio: in Fin...
Sono 32, di cui 6 nuove, le offerte Amaz...
Rinnovo dei coupon Amazon nascosti: ecco...
Corsair aggiorna la confezione delle RAM...
Ecco tutti i robot aspirapolvere in offe...
Tachyum: dal processore universale alle ...
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: 02:01.


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