|
| Nybegynnervurdering. Fra : Harald Mossige |
Dato : 27-02-09 14:20 |
|
WINXP
GUI: Codeblock
Bør jeg begynne å lære C eller C++?
Jeg skal lage et program som skal kjøre på PC. Når programmet er ferdig,
så skal det portes til AVR via Atmels STUDIO og WINavr.
Jeg reiner med at essensen i spørsmålet mitt er: Er WINAvr et c eller et
C++ program?
HM
| |
Arne Vajhøj (27-02-2009)
| Kommentar Fra : Arne Vajhøj |
Dato : 27-02-09 17:21 |
|
Harald Mossige wrote:
> WINXP
> GUI: Codeblock
>
> Bør jeg begynne å lære C eller C++?
Der er mange stærke meninger om dette emne.
Men givet at det lyder som om du vil arbejde meget med
embedded programmering, så synes jeg at du skal starte
med C.
> Jeg skal lage et program som skal kjøre på PC. Når programmet er ferdig,
> så skal det portes til AVR via Atmels STUDIO og WINavr.
>
> Jeg reiner med at essensen i spørsmålet mitt er: Er WINAvr et c eller et
> C++ program?
Som jeg læser http://winavr.sourceforge.net/ så kan du udvikle
både C og C++.
Arne
| |
Mogens Hansen (27-02-2009)
| Kommentar Fra : Mogens Hansen |
Dato : 27-02-09 18:11 |
|
"Arne Vajhøj" <arne@vajhoej.dk> wrote in message
news:49a812ec$0$90263$14726298@news.sunsite.dk...
[8<8<8<]
> Der er mange stærke meninger om dette emne.
Jep
Med mindre man _ved_ at man skal bruge C vil jeg anbefale at starte med C++.
>
> Men givet at det lyder som om du vil arbejde meget med
> embedded programmering, så synes jeg at du skal starte
> med C.
C++ er meget velegnet til embedded programmering. Det kan både give højere
abstraktions-niveau og bedre performance.
Det er over 15 år siden jeg var med til det første gang, og jeg sider stadig
i et miljø hvor der bliver lavet meget C++ til embedded systemer.
(Bemærk at det har intet med Embedded C++ dialekten at gøre - den vil jeg
mene man skal holde sig fra)
Se eventuelt
http://www.open-std.org/JTC1/sc22/wg21/docs/TR18015.pdf
som indeholder megen god information.
Jeg vil også anbefale at kigge på Bjarne Stroustrup nye bog
Programming, Principles and Practice Using C++
Bjarne Stroustrup
ISBN 0-321-54372-6
som egentligt primært beskæftiger sig med håndværket/videnskaben/kunsten at
programmere, og bruger C++ som et redskab til det.
--
Venlig hilsen
Mogens Hansen
| |
Kent Friis (27-02-2009)
| Kommentar Fra : Kent Friis |
Dato : 27-02-09 21:31 |
|
Den Fri, 27 Feb 2009 18:10:52 +0100 skrev Mogens Hansen:
>
> "Arne Vajhøj" <arne@vajhoej.dk> wrote in message
> news:49a812ec$0$90263$14726298@news.sunsite.dk...
>
> [8<8<8<]
>> Der er mange stærke meninger om dette emne.
>
> Jep
> Med mindre man _ved_ at man skal bruge C vil jeg anbefale at starte med C++.
Jeg ville ændre det til "med mindre man _ved_ at man _kun_ skal bruge C".
Det er nemmere at lære at skrive fornuftig high-level kode først, og
så dykke ned i det low-level når man får brug for det, end det er at
starte med at lære det low-level, og så forsøge at glemme det når
man skal til at lære at skrive high-level kode.
Starter man med C, og forsøger at bygge C++ ovenpå, kommer man meget
nemt i en situation hvor man bruger char* og stdio, som man jo kender,
i stedet for at lære rigtig C++.
Og så kommer man meget langt i C++ uden at bekymre sig om pointere,
hvorimod i C når man knap nok til "Hello World".
Mvh
Kent
--
Hvis en sort kat går over vejen foran en bil, betyder det ulykke
.... for katten.
| |
Harald Mossige (27-02-2009)
| Kommentar Fra : Harald Mossige |
Dato : 27-02-09 19:00 |
|
Arne Vajhøj skreiv:
> Harald Mossige wrote:
>> WINXP
>> GUI: Codeblock
>>
>> Bør jeg begynne å lære C eller C++?
>
> Der er mange stærke meninger om dette emne.
>
> Men givet at det lyder som om du vil arbejde meget med
> embedded programmering, så synes jeg at du skal starte
> med C.
>
>> Jeg skal lage et program som skal kjøre på PC. Når programmet er
>> ferdig, så skal det portes til AVR via Atmels STUDIO og WINavr.
>>
>> Jeg reiner med at essensen i spørsmålet mitt er: Er WINAvr et c eller
>> et C++ program?
>
> Som jeg læser http://winavr.sourceforge.net/ så kan du udvikle
> både C og C++.
Takk.
Takk begge deler.
Da er det tutor-manualen som bestemmer. Noen bedre en K&R II? helst
nettbasert og med eksempelfiler på nett?
HM
| |
Michael Rasmussen (27-02-2009)
| Kommentar Fra : Michael Rasmussen |
Dato : 27-02-09 19:12 |
| | |
Michael Rasmussen (27-02-2009)
| Kommentar Fra : Michael Rasmussen |
Dato : 27-02-09 21:43 |
|
On 27 Feb 2009 20:30:38 GMT
Kent Friis <nospam@nospam.invalid> wrote:
>
> Og så kommer man meget langt i C++ uden at bekymre sig om pointere,
> hvorimod i C når man knap nok til "Hello World".
>
Det vil jeg nu ikke give dig ret i. Copy og assignment constructor er
en ret væsentlig sprog konstruktion i C++.
--
Hilsen/Regards
Michael Rasmussen
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE3E80917
A computer is like air conditioning: it becomes useless when you open
windows.
| |
Kent Friis (27-02-2009)
| Kommentar Fra : Kent Friis |
Dato : 27-02-09 21:52 |
|
Den Fri, 27 Feb 2009 21:43:22 +0100 skrev Michael Rasmussen:
> On 27 Feb 2009 20:30:38 GMT
> Kent Friis <nospam@nospam.invalid> wrote:
>
>>
>> Og så kommer man meget langt i C++ uden at bekymre sig om pointere,
>> hvorimod i C når man knap nok til "Hello World".
>>
> Det vil jeg nu ikke give dig ret i. Copy og assignment constructor er
> en ret væsentlig sprog konstruktion i C++.
De eksempler jeg har på copy constructor bruger referencer, ikke
pointere.
(Assignment constructor er jeg ikke sikker på hvad er (det er over
10 år siden jeg lærte om C++)).
Mvh
Kent
--
Hvis en sort kat går over vejen foran en bil, betyder det ulykke
.... for katten.
| |
Arne Vajhøj (27-02-2009)
| Kommentar Fra : Arne Vajhøj |
Dato : 27-02-09 22:30 |
|
Kent Friis wrote:
> Den Fri, 27 Feb 2009 21:43:22 +0100 skrev Michael Rasmussen:
>> On 27 Feb 2009 20:30:38 GMT
>> Kent Friis <nospam@nospam.invalid> wrote:
>>
>>> Og så kommer man meget langt i C++ uden at bekymre sig om pointere,
>>> hvorimod i C når man knap nok til "Hello World".
>>>
>> Det vil jeg nu ikke give dig ret i. Copy og assignment constructor er
>> en ret væsentlig sprog konstruktion i C++.
>
> De eksempler jeg har på copy constructor bruger referencer, ikke
> pointere.
Ja. Men derfor skal man vel alligevel lære om de to og pointer
fields - med henblik på den dag hvor man får brug for det.
> (Assignment constructor er jeg ikke sikker på hvad er (det er over
> 10 år siden jeg lærte om C++)).
Han mener nok assignment operator.
Arne
| |
Kent Friis (27-02-2009)
| Kommentar Fra : Kent Friis |
Dato : 27-02-09 22:46 |
|
Den Fri, 27 Feb 2009 16:29:48 -0500 skrev Arne Vajhøj:
> Kent Friis wrote:
>> Den Fri, 27 Feb 2009 21:43:22 +0100 skrev Michael Rasmussen:
>>> On 27 Feb 2009 20:30:38 GMT
>>> Kent Friis <nospam@nospam.invalid> wrote:
>>>
>>>> Og så kommer man meget langt i C++ uden at bekymre sig om pointere,
>>>> hvorimod i C når man knap nok til "Hello World".
>>>>
>>> Det vil jeg nu ikke give dig ret i. Copy og assignment constructor er
>>> en ret væsentlig sprog konstruktion i C++.
>>
>> De eksempler jeg har på copy constructor bruger referencer, ikke
>> pointere.
>
> Ja. Men derfor skal man vel alligevel lære om de to og pointer
> fields - med henblik på den dag hvor man får brug for det.
Nu begynder jeg at få en mistanke om at det ikke var helt klart hvad
jeg mente med "man kommer langt".
Jeg mente ikke at man kan undvære at vide noget om pointere som C++
programmør - men at man kommer langt undervisnings-mæssigt. Man kan
lære en stor del af sproget, og få en god forståelse for hvad det
vil sige at programmere, inden man når til pointere. Man står altså
ikke som total nybegynder.
Derfor er C++ meget mere begynder-venligt end C.
>> (Assignment constructor er jeg ikke sikker på hvad er (det er over
>> 10 år siden jeg lærte om C++)).
>
> Han mener nok assignment operator.
Jeg havde en mistanke, men troede faktisk der var noget jeg havde
glemt alt om.
Mvh
Kent
--
Hvis en sort kat går over vejen foran en bil, betyder det ulykke
.... for katten.
| |
Anders Wegge Keller (27-02-2009)
| Kommentar Fra : Anders Wegge Keller |
Dato : 27-02-09 22:26 |
|
"Mogens Hansen" <mogens_h@dk-online.dk> writes:
> C++ er meget velegnet til embedded programmering. Det kan både give
> højere abstraktions-niveau og bedre performance.
Kan du uddybe den lidt?
Eller måske snarere fortælle mig om definitionen af "embedded" og
"performance" har ændret sig voldsomt i de sidste par år, hvor jeg har
siddet med hovedet nede i maven på et legacy-system.
Dit svar må gerne indeholde en vurdering af om C++ er praktisk på en
80186 arkitektur med 8 SCC'er og 512KB RAM, hvoraf den eksekverbare
kode kan bruge de 64KB.
--
/Wegge
| |
Michael Rasmussen (27-02-2009)
| Kommentar Fra : Michael Rasmussen |
Dato : 27-02-09 22:37 |
|
On Fri, 27 Feb 2009 16:29:48 -0500
Arne Vajhøj <arne@vajhoej.dk> wrote:
>
> Han mener nok assignment operator.
>
Ja, fingerene kunne ikke følge med tankerne
--
Hilsen/Regards
Michael Rasmussen
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE3E80917
A computer is like air conditioning: it becomes useless when you open
windows.
| |
Michael Rasmussen (27-02-2009)
| Kommentar Fra : Michael Rasmussen |
Dato : 27-02-09 22:45 |
|
On 27 Feb 2009 20:51:58 GMT
Kent Friis <nospam@nospam.invalid> wrote:
>
> De eksempler jeg har på copy constructor bruger referencer, ikke
> pointere.
>
I C++ er der kun logisk forskel på reference og pointer. Forskellen
er teknisk set, at en pointer er en reference til et
hukommelsessegment, hvor programmøren selv er ansvarlig for at
vedligeholde referencen, mens sproget vedligeholder referencen for
dig i C++. Sagt på en anden måde: Når objektet fjernes fra
hukommelsen, sættes referencen automatisk til NULL, dette er ikke
tilfældet for en pointer.
> (Assignment constructor er jeg ikke sikker på hvad er (det er over
> 10 år siden jeg lærte om C++)).
>
http://en.wikipedia.org/wiki/Assignment_operator_in_C%2B%2B
--
Hilsen/Regards
Michael Rasmussen
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE3E80917
A computer is like air conditioning: it becomes useless when you open
windows.
| |
Kent Friis (27-02-2009)
| Kommentar Fra : Kent Friis |
Dato : 27-02-09 22:49 |
|
Den Fri, 27 Feb 2009 22:44:30 +0100 skrev Michael Rasmussen:
> On 27 Feb 2009 20:51:58 GMT
> Kent Friis <nospam@nospam.invalid> wrote:
>
>>
>> De eksempler jeg har på copy constructor bruger referencer, ikke
>> pointere.
>>
> I C++ er der kun logisk forskel på reference og pointer. Forskellen
> er teknisk set, at en pointer er en reference til et
> hukommelsessegment, hvor programmøren selv er ansvarlig for at
> vedligeholde referencen, mens sproget vedligeholder referencen for
> dig i C++. Sagt på en anden måde: Når objektet fjernes fra
> hukommelsen, sættes referencen automatisk til NULL, dette er ikke
> tilfældet for en pointer.
En reference kan per definition ikke være NULL.
En reference peger altid på et gyldigt objekt, og lige netop dette
- en pointer der peger hen i skoven - er nok årsagen til 99% af de
problemer der gør pointere så forbandet svære at lære.
Mvh
Kent
--
Hvis en sort kat går over vejen foran en bil, betyder det ulykke
.... for katten.
| |
|
|