/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
Bech_bb 500
kyllekylle 500
jdjespers.. 500
gibson 300
scootergr.. 300
molokyle 287
10  strarup 270
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

On Fri, 27 Feb 2009 19:00:16 +0100
Harald Mossige <haraldm@hkabel.net> wrote:

> Da er det tutor-manualen som bestemmer. Noen bedre en K&R II? helst nettbasert og med eksempelfiler på nett?
Hvis du har erfaring udi programmering generelt, er disse steder altid
et opslag værd:
C++
http://www.research.att.com/~bs/bs_faq.html
http://www.parashift.com/c++-faq-lite/
C
http://plan9.bell-labs.com/who/bwk/
http://c-faq.com/
http://www.cinsk.org/cfaqs/html/

--
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 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.

Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407849
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste