Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità
ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità
NUC 15 Pro e NUC 15 Pro+ sono i due nuovi mini-PC di casa ASUS pensati per uffici e piccole medie imprese. Compatti, potenti e pieni di porte per la massima flessibilità, le due proposte rispondono in pieno alle esigenze attuali e future grazie a una CPU con grafica integrata, accompagnata da una NPU per la gestione di alcuni compiti AI in locale.
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint
Dal palco di Proofpoint Protect 2025 emerge la strategia per estendere la protezione dagli utenti agli agenti IA con il lancio di Satori Agents, nuove soluzioni di governance dei dati e partnership rafforzate che ridisegnano il panorama della cybersecurity
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Dopo alcuni anni di assenza dai cataloghi dei suoi televisori, Hisense riporta sul mercato una proposta OLED che punta tutto sul rapporto qualità prezzo. Hisense 55A85N è un televisore completo e versatile che riesce a convincere anche senza raggiungere le vette di televisori di altra fascia (e altro prezzo)
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-01-2004, 11: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, 12: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, 12: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, 12: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, 12: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, 12: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, 12: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, 14: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, 20: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, 20: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, 18: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, 01: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, 12: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, 12: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, 12: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, 12: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, 14: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, 14: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, 14: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, 20: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


ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondo...
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint Cybersecurity: email, utenti e agenti IA, la nuo...
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti Hisense A85N: il ritorno all’OLED è convi...
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento Acer TravelMate P6 14 AI: il Copilot+ PC sotto i...
Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
Elon Musk, primo al mondo a superare i 5...
Xbox Game Pass cambia: nuovi piani e pre...
Intel produrrà chip per AMD? L'in...
Ecco il nuovo Amazon Luna: videogiochi p...
ISRO: prosegue lo sviluppo della navicel...
CoD Black Ops 7 offrirà la beta p...
Il telescopio spaziale James Webb sta ai...
Crucial spinge sui moduli LPCAMM2: fino ...
Imgur blocca gli utenti del Regno Unito:...
ROG Xbox Ally già in consegna: qu...
Ubisoft annuncia Vantage Studios: Assass...
Il solare diventa la prima fonte di elet...
Google Home si rinnova completamente: ar...
Dense Geometry Format (DGF): novit&agrav...
Gemini for Home arriva a ottobre sui dis...
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:09.


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