Ciclo while o for?
Moderatori:
Paolino,
fairyvilje
18 messaggi
• Pagina 2 di 2 • 1, 2
1
voti
Parlando di micro ho fatto un po' di verifiche. avr gcc ed il compilatore keil supportano C99, mentre i compilatori per i PIC (XC8,XC16 e XC32) no, o solo in parte.
"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.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
6
voti
Wikipedia ha una pagina che riporta i compilatori con supporto C99, ma non dice nulla su quelli per micro. GCC e CLang hanno anche un esteso supporto per il C11 (GCC C11 Status).
Devo dire che tra le features che ho trovato più utili del C99 e del C11 ci sono i designated initializers che permettono di inizializzare struct, union e array con i nomi dei campi e senza ricordarsi l'ordine, p.es.
Poi anche il supporto per i numeri complessi, e i compound literals.
Devo dire che tra le features che ho trovato più utili del C99 e del C11 ci sono i designated initializers che permettono di inizializzare struct, union e array con i nomi dei campi e senza ricordarsi l'ordine, p.es.
- Codice: Seleziona tutto
typedef struct {
unsigned int nvServer;
int channels;
double clkFrequency;
unsigned int samples;
int activeChannel;
ChannelSettings channelSettings[CHANNELS_MAX];
} SourceSettings;
static const SourceSettings sourceSettingsDefaults = {
.nvServer = 1,
.channels = DADSS_CHANNELS,
.clkFrequency = 20.0,
.samples = 500,
.activeChannel = 0,
};
Poi anche il supporto per i numeri complessi, e i compound literals.
It's a sin to write
instead of
(Anonimo).
...'cos you know that
ain't
, right?
You won't get a sexy tan if you write
in lieu of
.
Take a log for a fireplace, but don't take
for
arithm.
instead of
(Anonimo)....'cos you know that
ain't
, right?You won't get a sexy tan if you write
in lieu of
.Take a log for a fireplace, but don't take
for
arithm.-

DirtyDeeds
55,9k 7 11 13 - G.Master EY

- Messaggi: 7012
- Iscritto il: 13 apr 2010, 16:13
- Località: Somewhere in nowhere
1
voti
... il solito esagerato!!!
In fin dei conti io chiedevo solo un'umile informazione...
Max
In fin dei conti io chiedevo solo un'umile informazione...
MaxDisapprovo 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]
La gentilezza dovrebbe diventare lo stile naturale della vita, non l'eccezione [Siddhārtha Gautama]
-

Max2433BO
18,6k 4 11 13 - G.Master EY

- Messaggi: 4724
- Iscritto il: 25 set 2013, 16:29
- Località: Universo - Via Lattea - Sistema Solare - Terzo pianeta...
1
voti
- Codice: Seleziona tutto
int i = 0;
for(;;) {
if (i >= 10) break;
// Place your code here
}
e di questo?
- Codice: Seleziona tutto
for(;;) {
if (isSegnaleAttivo() != true) break;
// Place your code here
}
"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.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
Mi trovo d'accordo con
TardoFreak
E' sempre possibile trasformare un ciclo for in un ciclo while e con i dovuti accorgimenti anche in un ciclo if,do,while.
E' sempre possibile trasformare un ciclo for in un ciclo while e con i dovuti accorgimenti anche in un ciclo if,do,while.
MCSA Windows Server 2012 R2
Cisco CCNA R&S - Cisco CCNA Security - Cisco CCNA Cyber Ops
CompTia A+ - CompTia Linux+ - CompTIA Systems Support Specialist CSSS
CompTia Pentest+ LPIC-1 - VCP VMware - Cisco CCNP Enterprise
Cisco CCNA R&S - Cisco CCNA Security - Cisco CCNA Cyber Ops
CompTia A+ - CompTia Linux+ - CompTIA Systems Support Specialist CSSS
CompTia Pentest+ LPIC-1 - VCP VMware - Cisco CCNP Enterprise
0
voti
credo di avere compreso ma, se la priorità (come immagino debba essere) viene attribuita al processo, questo presupposto dirime la questione forse sino a fare perdere rilevanza al tipo di costrutto.(...) nella struttura WHILE il domino della situazione è il processo, non la programmazione (...) spero di essere stato chiaro nella mia esposizione, mi interessa molto confrontarmi su questi argomenti
Allora diventa fondamentale la conoscenza del tempo che quel loop richiede, senza appunto uscire dallo stesso, partendo dalla condizione iniziale per soddisfare quella finale.
Se, nell'insieme della gestione del processo/impianto, questo tempo è tollerabile, non c'è problema.
Ad esempio, immagino, va bene se devo riempire una tabella di valori (magari azzerarli): ho il processore "concentrato" su quello per enne nanosecondi, e mi può andare bene perché so quanto ci impiega, tempo sottratto a tutto il resto.
Se invece, enfatizzando, si tratta di aggiornare(modificare) un valore impiegato in un processo di regolazione e tale azione deve essere ripetuta sino al raggiungimento dell'obiettivo, per quanto l'esecuzione la possa considerare rapida, forse, non posso azzardare l'impiego di un costrutto del genere.
Sia nel caso della tabella che in questo della regolazione ipotizzo sia sempre un solo processore ad occuparsene
Saluti
W - U.H.F.
-

WALTERmwp
30,2k 4 8 13 - G.Master EY

- Messaggi: 8982
- Iscritto il: 17 lug 2010, 18:42
- Località: le 4 del mattino
2
voti
Nel costrutto for esistono tre diversi "comandi":
-il primo viene eseguito all'inizio del costrutto
-il secondo viene verificato ad ogni iterazione
-il terzo viene eseguito ad ogni iterazione
poi che questi tre comandi vengano utilizzati per fare un contatore è una scelta buona e sana, ma non significa che non ci siano alternative...
Ad esempio:
Un ciclo senza condizione di uscita che fa lampeggiare un led secondo la costante tempo.
La cosa bella (e che forse rende questa soluzione poco "leggibile") è che i "parametri" del for in questo caso non hanno nulla a che vedere con il numero delle iterazioni
-il primo viene eseguito all'inizio del costrutto
-il secondo viene verificato ad ogni iterazione
-il terzo viene eseguito ad ogni iterazione
poi che questi tre comandi vengano utilizzati per fare un contatore è una scelta buona e sana, ma non significa che non ci siano alternative...
Ad esempio:
- Codice: Seleziona tutto
for( Accendi il led; ; Inverti il led){
delay(tempo);
}
Un ciclo senza condizione di uscita che fa lampeggiare un led secondo la costante tempo.
La cosa bella (e che forse rende questa soluzione poco "leggibile") è che i "parametri" del for in questo caso non hanno nulla a che vedere con il numero delle iterazioni
Piuttosto che chiedere qualcosa a me, chiedila a Mara Maionchi. E' più competente.
-

paofanello
2.280 8 13 - Expert

- Messaggi: 532
- Iscritto il: 7 lug 2015, 21:01
0
voti
Più che altro il buon senso sta nell'impiegare gli statement per scrivere un codice leggibile. Per il resto, sapendo quel che si fa, il loop è il medesimo, indipendentemente dalla frase scritta per ottenerlo.
-

CarloCoriolano
1.446 3 4 7 - ---
- Messaggi: 1023
- Iscritto il: 24 mag 2016, 13:08
18 messaggi
• Pagina 2 di 2 • 1, 2
Chi c’è in linea
Visitano il forum: Nessuno e 13 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)