Alex (Ex-Member)
Expert
Messaggi: 441
Iscritto: 15/08/2005
|
ciao a tutti...ho appena iniziato a leggere un manuale di c..
premetto che sono abituato al pascal e diciamo che la mia prima impressione è che sia un linguaggio molto potente che lascia molto controllo al programmatore, ma con un infinità di sottigliezze...(pensiamo solo alle funzioni printf e scanf)ma d'altronde con così tanta libertà deve essere per forza così...
comunque volevo chiedere: le istruzioni break goto e continue vengono usate molto spesso?
xk a me hanno sempre insegnato che sono indice di scarsa qualità del programma e che non vanno usate....(almeno in pascal)...e poi c'è quel famoso teorema che dimostra che qualsiasi algoritmo può essere descritto con la sequenza, la selezione e l'iterazione....
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
in realtà si usano piuttosto spesso break e continue, ma molto meno goto.
la pulizia del codice è importante come la velocità di esecuzione, spesso troppi cicli e condizioni complesse peggiorano sia una che l'altra cosa, quindi entrano in gioco break e continue
per quanto riguarda goto posso dire che l'unico ambito in cui lo considero utile è l'uscita da n dei h cicli annidati in cui siamo, senza ritornare dalla funzione, una specie di botola di emergenza. ma a parte questo utilizzo, è veramente deprecato.
|
|
Pitagora (Member)
Expert
Messaggi: 367
Iscritto: 12/06/2010
|
è giustissimo quello che ha detto Hedo. break; and continue; si usano spesso. goto e meglio non utilizzarlo ..
|
|
Alex (Ex-Member)
Expert
Messaggi: 441
Iscritto: 15/08/2005
|
grazie mille=)
questo linguaggio continua a stupirmi...
sono rimasto perplesso dal fatto che il ciclo do while non è il ciclo repeat until del pascal...la condizione non è ribaltata rispetto al while come in pascal..
se il pascal è = a un bel praticello inglese il c è la foresta amazzonica in confronto!!
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
Postato originariamente da Alex:
se il pascal è = a un bel praticello inglese il c è la foresta amazzonica in confronto!! |
più che altro si ha la sensazione di passare da un vero e proprio giocattolo ad un linguaggio con tutti gli strumenti per fare grandi cose |
|
Alex (Ex-Member)
Expert
Messaggi: 441
Iscritto: 15/08/2005
|
in effetti xò anche il pascal non è un linguaggio cattivo....il fatto è che è molto molto astratto...
ma se uno sa bene il c può fare ad esempio il firmware di un lettore mp3? o c'è la necessità di sapere qualcosa anche di assembly?
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
Postato originariamente da Alex:
ma se uno sa bene il c può fare ad esempio il firmware di un lettore mp3? o c'è la necessità di sapere qualcosa anche di assembly? |
si, anche se si chiama embedded c, ovvero tutta quella programmazione legata ai microcontrollori. Oltre al fatto che nei casi di firmware et simila non si esclude l'utilizzo di inserti di assembler. Infatti in c/c++ si possono inserire delle righe di assembler tranquillamente, usando i blocchi asm. Ti faccio un esempio:
Codice sorgente - presumibilmente C++ |
int main() { int c = 0; asm { mov c, 1; [...] } printf("c vale %d\n", c); return 0; }
|
assegni tramite assembler il valore 1 a c |
|
Alex (Ex-Member)
Expert
Messaggi: 441
Iscritto: 15/08/2005
|
Postato originariamente da HeDo:
Postato originariamente da Alex:
ma se uno sa bene il c può fare ad esempio il firmware di un lettore mp3? o c'è la necessità di sapere qualcosa anche di assembly?
si, anche se si chiama embedded c, ovvero tutta quella programmazione legata ai microcontrollori. Oltre al fatto che nei casi di firmware et simila non si esclude l'utilizzo di inserti di assembler. Infatti in c/c++ si possono inserire delle righe di assembler tranquillamente, usando i blocchi asm. Ti faccio un esempio:
|
questo anche in pascal se non sbaglio....
comunque occorrono particolari conoscenze in più per programmare microcontrollori?
assegni tramite assembler il valore 1 a c
|
mi pare che su un manuale di architettura che ho ci sia anche l'assembly...quindi dopo il c approfondirò un pò il discorso
Ultima modifica effettuata da Alex il 15/07/2010 alle 21:26 |
|
Steno94 (Normal User)
Rookie
Messaggi: 29
Iscritto: 09/07/2010
|
Postato originariamente da HeDo:
in realtà si usano piuttosto spesso break e continue, ma molto meno goto.
la pulizia del codice è importante come la velocità di esecuzione, spesso troppi cicli e condizioni complesse peggiorano sia una che l'altra cosa, quindi entrano in gioco break e continue
per quanto riguarda goto posso dire che l'unico ambito in cui lo considero utile è l'uscita da n dei h cicli annidati in cui siamo, senza ritornare dalla funzione, una specie di botola di emergenza. ma a parte questo utilizzo, è veramente deprecato. |
Sono pienamente d'accordo con HeDo |
|