Newsgroup: it.hobby.elettronica.digitale
Titolo: Linguaggio C dei micro e classi

Si possono creare delle classi nei listati per PIC da compilare in C ?

 Si possono creare delle classi nei listati per PIC da compilare in C ?
Le classi esistono nel linguaggio C++, non C.
Ciao!
Marco / iw2nzm


Anche perche' il C++ viene definito qualche volta come : "C con le classi".
Ciao 

> Le classi esistono nel linguaggio C++, non C.
Esiste qualche compilatore che supporti le classi, e quindi il c++
piuttosto che il C ?
(la domanda vale per qualsialsi micro, non solamente i pic)

 piuttosto che il C ?
Per i PIC:
http://www.sourceboost.com/Products/BoostCpp/Specification.html
Sicuramente è più facile trovarne (e IMHO hanno più senso) per micro di 
fascia medio-alta.
Marco / iw2nzm

 fascia medio-alta.
Si, hai sicuramente ragione, ma per quel che costa (200$) vorrei non farmi 
mancare la potenza delle classi, soprattutto per quanto riguarda poi 
l'organizzazione del codice in modo piu elegante e ordinato!

 piu elegante e ordinato!
Tieni presente che l'uso delle classi di solito č deleterio in
termini di prestazioni ed occupazione di memoria! E' questo
il motivo per cui il C++ non č cosě diffuso per la
programmazione di sistemi embedded (rispetto al C puro).
Il problema č che l'uso delle classi e dei meccanismi collegati
nascondono molto bene quello che succede a livello macchina,
quindi quello che capita č che basta utilizzare una funzione
banale (chessň, overloading degli operatori), per trovarsi
un codice oggetto enormemente piů lungo... Insomma, si
perde una buona parte del controllo diretto sulla macchina
che si ha col C, relegandolo al compilatore, che non sempre
fa le cose nel modo migliore... Risultato netto medio:
inefficienza e/o proliferazione dei bug, ossia le caratteristiche
tipiche di qualsiasi software programmato ad alto livello :-).
A.D.

 tipiche di qualsiasi software programmato ad alto livello :-).
Sono d'accordo solo a metà :-)
E' vero che il C++ è meno efficiente, ma la proliferazione dei bug non è 
dovuta (solo) al linguaggio.
Il C++, con tutte le feature di un linguaggio ad oggetti, dovrebbe 
consentire una programmazione più spedita e con meno bug. C'è però da 
considerare che nonostante sia ad oggetti, tra tutti i linguaggi di 
questo tipo è quello a più basso livello, ed è consentito veramente fare 
di tutto.
Se poi ci aggiungi il fatto che molti programmano in C++ usandolo come 
il C, le probabilità di errore risultano essere amplificate.
Da un grande potere derivano grandi responsabilità (*), e per questo, i 
linguaggi venuti dopo cercano di limitare quello che il programmatore 
può fare. Solo in pochi sono in grado di usare il C++ senza far danni. A 
scanso di equivoci io non ritengo di far parte di questo gruppo :-)
Ciao
(*) cit. Spiderman :-)

*FeDe* ha scritto:

Per gli AVR, il compilatore gcc supporta anche il C++, ma manca la 
libreria standard C++ (stringhe, stream, etc..). In realtà ci sarebbe, 
ma quella standard occupa diverse decine di kilobyte, più di tutta la 
memoria flash disponbile su un AVR medio!
Come ti hanno già detto, usare il C++ porta, in genere, ad una 
esplosione di inefficienza. In particolare l'uso della memoria diventa 
spropositato. Usare il C++ nell'embedded è sensato solo su 
microcontrollori con memoria in abbondanza, direi dai 100 kb di RAM in su.
Ciao