Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

[C] Variabili globali o variabili puntatore?

Linguaggi e sistemi

Moderatori: Foto UtentePaolino, Foto Utentefairyvilje

0
voti

[11] Re: [C] Variabili globali o variabili puntatore?

Messaggioda Foto UtenteTardoFreak » 30 mag 2015, 18:59

EcoTan ha scritto:Ti assicuro che i miei robottini fanno esattamente quello che dico io (dopo un po' di prove) ...

Non lo metto in dubbio.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

2
voti

[12] Re: [C] Variabili globali o variabili puntatore?

Messaggioda Foto Utentealdofad » 30 mag 2015, 19:05

Foto UtenteEcoTan da quante righe sono i programmi dei tuoi robottini?
Hai idea di cosa siano classi, oggetti, astrazione e interfacce?
Hai idea di cosa significherebbe sviluppare un software da 100.000 righe (nulla di eccezionale) con la logica che proponi?
Si e' andati un po' oltre alle variabili globali negli ultimi decenni
Avatar utente
Foto Utentealdofad
853 4 5
Sostenitore
Sostenitore
 
Messaggi: 689
Iscritto il: 21 gen 2014, 1:07
Località: Treviso

0
voti

[13] Re: [C] Variabili globali o variabili puntatore?

Messaggioda Foto UtenteTardoFreak » 30 mag 2015, 19:14

Sarebbe anche interessante sapere che micro utilizzi.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[14] Re: [C] Variabili globali o variabili puntatore?

Messaggioda Foto UtenteEcoTan » 30 mag 2015, 19:25

TardoFreak ha scritto:Sarebbe anche interessante sapere che micro utilizzi.

E' il dsPic33, ti linko una relazione abbastanza concisa:
http://www.robot-italy.net/roboforum/blog.php?b=183
Non è che tutte le esigenze sono uguali, sulla stessa tastiera c'è chi suona Mozart e chi compone canzonette (magari!).
Avatar utente
Foto UtenteEcoTan
7.720 4 12 13
Expert EY
Expert EY
 
Messaggi: 5426
Iscritto il: 29 gen 2014, 8:54

3
voti

[15] Re: [C] Variabili globali o variabili puntatore?

Messaggioda Foto UtenteWALTERmwp » 30 mag 2015, 19:28

Ciao Foto UtenteMax2433BO, la sostanza sta in quello che ti ha riportato Foto Utentesimo85.
Il passaggio di parametri, in quanto tale, rispetto all'accesso diretto ad una variabile "pesa" in termini di esecuzione e vale un po su tutte le piattaforme; mi sembra di capire tu stia provando su PC.

L'impiego di parametri e nello specifico quello di puntatori ti consente di gestire con maggiore flessibilità l'esecuzione di funzioni più o meno articolate.

Nei casi che hai riportato non sussistono necessità.
Nulla ti vieta, naturalmente, se vuoi rendere più "lenta" la prestazione, sempre considerando i tuoi esempi, di dichiarare variabili globali e, comunque, passare i loro indirizzi alla funzione predisposta coi parametri puntatori.

L'utilizzo di variabili globali non è, di per sé, una pratica sconsiderata; bisogna però sempre fare attenzione alla modalità d'uso perché, appunto, le "vedono" tutti.
D'altra parte in "C" è opportuno sempre prestare attenzione a quello che si fa perché ci sono ampi margini di manovra che richiedono consapevolezza.

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
30,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 8990
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

0
voti

[16] Re: [C] Variabili globali o variabili puntatore?

Messaggioda Foto UtenteMax2433BO » 31 mag 2015, 5:14

Innanzi tutto grazie a tutti quanti!!!

@Foto UtenteWALTERmwp

... lo so che nei miei esempi non era necessario ne l'uso delle variabili globali, ne, tanto meno, quello di variabili puntatore.

Era stato fatto semplicemente per vedere la differenza, in termini prestazionali, tra l'utilizzo delle due modalità visto che, come erano state presentate sul testo che sto utilizzando, non ne sembrava sussistere alcuna, se si esclude il fatto che, come anche specificato più volte da chi ha partecipato a questa discussione (... escluso Foto UtenteEcoTan che sostiene altrimenti...), l'uso delle variabili globali può portare ad inaspettate e dannose sovrascritture di valori e quindi a tutta una serie di disfunzioni del programma stesso.

A questo punto, visto che, effettivamente, con questi semplici programmi, per altro eseguiti su un PC, non si nota alcuna differenza di prestazioni tra i due diversi metodi, farò come ha suggerito Foto Utentesimo85.

@Foto Utentesimo85

Allora, io utilizzo l'IDE "Geany" per la stesura e la compilazione dei programmi.

Al momento ammetto di conoscere veramente poche delle sue funzionalità :oops: per cui, forse, ci sarà modo di ottenere anche dal suo interno il corrispondente in assembler dei miei programmi.

Comunque avevo già utilizzato direttamente il compilatore gcc, quando scrivevo i programmi con un semplice editor di testo, per cui utilizzerò i comandi che mi hai dato per ottenere il disassembling dei miei due programmi e vedere, così, il diverso "peso" che ha l'utilizzo delle variabili puntatore rispetto a quelle globali.

Grazie ancora a tutti...

... ci sentiamo ai prossimi dubbi. :mrgreen:


EDIT: Ho ricavato l'assembler dei due programmi e, sperando di aver contato le righe di codice giuste :mrgreen: , la differenza è di 4 righe in meno (sia sul main che sulla funzione) a favore dell'utilizzo delle variabili globali.

Non è molto, ma ciò è sicuramente dovuto alla semplicità estrema dei due esempi.

Da qui, come giustamente fatto notare, si evince che l'utilizzo delle variabili puntatore "pesa" in termini prestazionali sull'esecuzione del programma permettendo, però, di evitare i problemi legati all'utilizzo delle variabili globali.

O_/ Max
Disapprovo quello che dite, ma difenderò fino alla morte il vostro diritto di dirlo [attribuita a Voltaire]

La gentilezza dovrebbe diventare lo stile naturale della vita, non l'eccezione [Siddhārtha Gautama]
Avatar utente
Foto UtenteMax2433BO
18,6k 4 11 13
G.Master EY
G.Master EY
 
Messaggi: 4724
Iscritto il: 25 set 2013, 16:29
Località: Universo - Via Lattea - Sistema Solare - Terzo pianeta...

-1
voti

[17] Re: [C] Variabili globali o variabili puntatore?

Messaggioda Foto Utentealdofad » 31 mag 2015, 9:22

Questa discussione assurda sembra risalire al 1980 quando la programmazione non era object oriented ed esisteva solo codice monolitico.
Avatar utente
Foto Utentealdofad
853 4 5
Sostenitore
Sostenitore
 
Messaggi: 689
Iscritto il: 21 gen 2014, 1:07
Località: Treviso

0
voti

[18] Re: [C] Variabili globali o variabili puntatore?

Messaggioda Foto UtenteEcoTan » 31 mag 2015, 10:29

aldofad ha scritto:risalire al 1980

Poco dopo tale data la nostra "professionalità" ha prodotto solo chiacchiere e l'industria elettronica italiana è sparita.
Adesso mi sono scocciato di prendere punti negativi per avere raccontato una mia esperienza in un campo non abbastanza "professionale".
Quando riuscirete a rendere obbligatoria per legge la programmazione a oggetti, come già si è fatto per tante altre cavolate, il problema sembrerà risolto.
P.S. stanotte mi hanno rubato la bicicletta elettrica ieri si è guastato il frigo e non è giornata
Ultima modifica di Foto UtenteEcoTan il 31 mag 2015, 10:52, modificato 2 volte in totale.
Avatar utente
Foto UtenteEcoTan
7.720 4 12 13
Expert EY
Expert EY
 
Messaggi: 5426
Iscritto il: 29 gen 2014, 8:54

2
voti

[19] Re: [C] Variabili globali o variabili puntatore?

Messaggioda Foto UtenteDanteCpp » 31 mag 2015, 10:30

aldofad ha scritto:Questa discussione assurda sembra risalire al 1980


Anche oggi che abbiamo il superparallelismo le prestazioni contano a seconda dell'ambito e della piattaforma, poi quella di max può essere solo una curiosità più che legittima...

Foto UtenteMax2433BO se usi geany sotto ubuntu probabilmente esso usa gcc per compilare, puoi verificarlo andando sul menù a tendina: Genera > Imposta i comandi per la compilazione.

Puoi inserire direttamente la il parametro -S o -g.

Comunque penso che la diminuzione delle prestazioni non derivi dal maggior numero di istruzioni, bensì da un numero maggiore di accessi alla memoria...

Ti consiglio di imparare ad usare gdb, anche perché è un vero spasso. Comunque per iniziare c'è anche un'interfaccia grafica per quest'ultimo si chiama ddd...

Dante
Avatar utente
Foto UtenteDanteCpp
4.730 3 9 13
Master EY
Master EY
 
Messaggi: 1106
Iscritto il: 15 dic 2011, 18:51

0
voti

[20] Re: [C] Variabili globali o variabili puntatore?

Messaggioda Foto Utentealdofad » 31 mag 2015, 10:50

EcoTan ha scritto:Quando riuscirete a rendere obbligatoria per legge la programmazione a oggetti, come già si è fatto per tante altre cavolate, il problema sembrerà risolto.

Infatti lo è proprio diventato obbligatorio per legge, perlomeno in Java, e il problema (dei temi assurdi qui discussi) si è proprio risolto.
Avatar utente
Foto Utentealdofad
853 4 5
Sostenitore
Sostenitore
 
Messaggi: 689
Iscritto il: 21 gen 2014, 1:07
Località: Treviso

PrecedenteProssimo

Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 65 ospiti