|
| Hvad er C99? Fra : Zodiaz12 |
Dato : 23-11-03 14:33 |
|
Her er lige et par eksempler:
EX: 1
#include <stdio.h>
int main()
{
cout << "Test";
return 0;
}
EX: 2
#include <stdio>
using namespace std;
int main()
{
cout << "Test";
return 0;
}
EX: 3
#include <stdio>
int main()
{
std::cout << "Test";
return 0;
}
Eks. 1 er jo uddateret..
Men ex 2 og 3, er det hvad ma kalder C99?
Er her nogen som har nogle gode links?
| |
Jacob Bunk Nielsen (23-11-2003)
| Kommentar Fra : Jacob Bunk Nielsen |
Dato : 23-11-03 14:37 |
|
"Zodiaz12" <dont@mail.me> writes:
> Men ex 2 og 3, er det hvad ma kalder C99?
Nej, dem ville jeg kalde C++. C99 er seneste standard for C. Det du
har vist er C++. Sprogene har en del til fælles, men C og C++ er ikke
det samme.
--
Jacob - www.bunk.cc
Did I say 2? I lied.
| |
Zodiaz12 (23-11-2003)
| Kommentar Fra : Zodiaz12 |
Dato : 23-11-03 14:49 |
|
> > Men ex 2 og 3, er det hvad ma kalder C99?
>
> Nej, dem ville jeg kalde C++. C99 er seneste standard for C. Det du
> har vist er C++. Sprogene har en del til fælles, men C og C++ er ikke
> det samme.
>
> --
> Jacob - www.bunk.cc
> Did I say 2? I lied.
Oki!
Jeg har bare hørt at C++ std. blev ændret.. vist i 99 så man ikke længere
gør som i EK1 men i stedet som i EX 2/3
Grunden til jeg spørger er at jeg gerne vil vide noget mere om ændringen men
ved ikke hvad jeg skal lede efter.
Det har ikke rigtig lykkes mig at finde noget specifikt på IEEE og ANSI.
Bl.a. den nye headerfil "stdio" som erstatning for "stdio.h"
| |
Zodiaz12 (23-11-2003)
| Kommentar Fra : Zodiaz12 |
Dato : 23-11-03 14:57 |
|
> > > Men ex 2 og 3, er det hvad ma kalder C99?
> >
> > Nej, dem ville jeg kalde C++. C99 er seneste standard for C. Det du
> > har vist er C++. Sprogene har en del til fælles, men C og C++ er ikke
> > det samme.
> >
> > --
> > Jacob - www.bunk.cc
> > Did I say 2? I lied.
>
> Oki!
> Jeg har bare hørt at C++ std. blev ændret.. vist i 99 så man ikke længere
> gør som i EK1 men i stedet som i EX 2/3
> Grunden til jeg spørger er at jeg gerne vil vide noget mere om ændringen
men
> ved ikke hvad jeg skal lede efter.
> Det har ikke rigtig lykkes mig at finde noget specifikt på IEEE og ANSI.
> Bl.a. den nye headerfil "stdio" som erstatning for "stdio.h"
>
>
#include <iostream> følig!. Og ikke <stdio>
| |
Mogens Hansen (23-11-2003)
| Kommentar Fra : Mogens Hansen |
Dato : 23-11-03 15:12 |
|
"Zodiaz12" <dont@mail.me> wrote:
[8<8<8<]
> Oki!
> Jeg har bare hørt at C++ std. blev ændret.. vist i 99 så man ikke længere
> gør som i EK1 men i stedet som i EX 2/3
C++ Standarden blev formelt vedtaget i 1998 og updateret i år med mindre
rettelser.
Ændringen i header filerne ligger noget længere tilbage.
> Grunden til jeg spørger er at jeg gerne vil vide noget mere om ændringen
men
> ved ikke hvad jeg skal lede efter.
Er det selve ændringen og baggrunden for den du er interesseret i ?
Eller er det hvad der faktisk er gældende ?
For det sidste er
The C++ Programming Language, Special Edition (Third Edition)
Bjarne Stroustrup
ISBN 0-201-70073-5 (ISBN 0-201-88954-4)
rigtig gode bud.
Desuden er der naturligvis selve C++ Standarden, som kan købes på
elektronisk form for $18 eller på bog form fra Wiley (det er 2003
revisionen - jeg ved ikke om den er udkommet men ellers er den lige på
trapperne).
Endelig kan C++Standarden købes fra f.eks. Dansk Standard for nogle tusind
kroner.
Desuden findes der naturligvis en række andre gode bøger om C++ Standard
library.
Søg eventuelt på Google efter tidligere indlæg fra undertegnede om bøger.
Venlig hilsen
Mogens Hansen
| |
Zodiaz12 (23-11-2003)
| Kommentar Fra : Zodiaz12 |
Dato : 23-11-03 15:35 |
|
> > Jeg har bare hørt at C++ std. blev ændret.. vist i 99 så man ikke
længere
> > gør som i EK1 men i stedet som i EX 2/3
>
> C++ Standarden blev formelt vedtaget i 1998 og updateret i år med mindre
> rettelser.
> Ændringen i header filerne ligger noget længere tilbage.
>
> > Grunden til jeg spørger er at jeg gerne vil vide noget mere om ændringen
> men
> > ved ikke hvad jeg skal lede efter.
>
> Er det selve ændringen og baggrunden for den du er interesseret i ?
> Eller er det hvad der faktisk er gældende ?
>
> For det sidste er
> The C++ Programming Language, Special Edition (Third Edition)
> Bjarne Stroustrup
> ISBN 0-201-70073-5 (ISBN 0-201-88954-4)
> rigtig gode bud.
>
> Desuden er der naturligvis selve C++ Standarden, som kan købes på
> elektronisk form for $18 eller på bog form fra Wiley (det er 2003
> revisionen - jeg ved ikke om den er udkommet men ellers er den lige på
> trapperne).
> Endelig kan C++Standarden købes fra f.eks. Dansk Standard for nogle tusind
> kroner.
>
> Desuden findes der naturligvis en række andre gode bøger om C++ Standard
> library.
> Søg eventuelt på Google efter tidligere indlæg fra undertegnede om bøger.
>
> Venlig hilsen
>
> Mogens Hansen
>
>
Jeg har programmeret en del c++ få år tilbage og har nu fundet det frem af
gemmerne igen.
Men jeg opdagede hurtigt at mine bøger er for gamle.
Når jeg programmerede som i EX 1 fik jeg en warning om at headerfilen var
depreciated.
Det er ikke så meget årsagen men mere.. hvordan går jeg tingene nu for de
skal være korrekte.
Tak for et godt og brugbart svar.
| |
Mogens Hansen (23-11-2003)
| Kommentar Fra : Mogens Hansen |
Dato : 23-11-03 16:07 |
|
"Zodiaz12" <dont@mail.me> wrote
[8<8<8]
> Jeg har programmeret en del c++ få år tilbage og har nu fundet det frem af
> gemmerne igen.
Vær opmærksom på at der er sket udvikling i programmeringsstil som langt
væsentligere end navnet på header filerne.
Det er f.eks. anvendelsen af klasser som "string", "vector" og "map" og i
det hele taget hvad der populært kaldes STL.
Hvis det ikke umiddelbart siger dig noget, kan jeg varmt anbefale at købe og
læse bogen
Accelerated C++
Andrew Koenig, Barbare E. Moo
ISBN 0-201-70353-X
Venlig hilsen
Mogens Hansen
| |
Michael aka Slowhand (23-11-2003)
| Kommentar Fra : Michael aka Slowhand |
Dato : 23-11-03 17:01 |
|
"Mogens Hansen" <mogens_h@dk-online.dk> skrev i en meddelelse
news:bpqidf$1nv2$1@news.cybercity.dk...
>
> "Zodiaz12" <dont@mail.me> wrote
>
> [8<8<8]
> > Jeg har programmeret en del c++ få år tilbage og har nu fundet det frem
af
> > gemmerne igen.
>
> Vær opmærksom på at der er sket udvikling i programmeringsstil som langt
> væsentligere end navnet på header filerne.
> Det er f.eks. anvendelsen af klasser som "string", "vector" og "map" og i
> det hele taget hvad der populært kaldes STL.
>
> Hvis det ikke umiddelbart siger dig noget, kan jeg varmt anbefale at købe
og
> læse bogen
> Accelerated C++
> Andrew Koenig, Barbare E. Moo
> ISBN 0-201-70353-X
>
Jep, det er også informationer on disse nye/ændrede ting, ny syntax og hvad
der ellers kan være jeg gerne vil vide noget mere om!
jeg har jo et hav af bøger, men den nyeste er nok fra 98 eller lign og
bruger stadig iostream.h!
Hvad står ovenstående og tidligere nævnte bøger i? (ca. pris).. hvis du lige
har dem i hovedet.. !
Ellers finder jeg dem selv!
| |
tmb (27-11-2003)
| Kommentar Fra : tmb |
Dato : 27-11-03 00:15 |
|
Michael aka Slowhand wrote:
> jeg har jo et hav af bøger, men den nyeste er nok fra 98 eller lign og
> bruger stadig iostream.h!
der er ingen header ved navn iostream.h, headeren hedder iostream. når
du inkluderer en standard header er det ikke nødvendigvis en fil så
derfor er det ikke et filnavn men ET navn på en header. du kan godt få
success med at inkludere <iostream.h>, men det er pga. kompatibilitet
med bla. den første kommercielle version af c++ (1985) der ikke kender
til namespaces og benytter denne form for header navngivning. de gamle
STL headers .h er globale, færre og færre kompilere understøtter dette.
for hver c standard library header <X.h> findes en <cX> header i c++.
begge er wrapped i et std namespace men <X.h> definerer også implicit,
using namespace std; så for at undgå sammenfald af navne bør <cX>
modellen benyttes.
accelerated c++ af andrew koenig er en rigtig god og seriøs starter.
jeg behøver vel næsten ikke sige at the c++ programming language af
bjarne stroustrup er essentiel ;)
jeg har begge bøger, og fandt dem billigt på samfundslitteratur.dk
--
tmb
| |
Per Abrahamsen (23-11-2003)
| Kommentar Fra : Per Abrahamsen |
Dato : 23-11-03 18:37 |
|
"Zodiaz12" <dont@mail.me> writes:
> Her er lige et par eksempler:
>
> EX: 1
> #include <stdio.h>
> int main()
> {
> cout << "Test";
> return 0;
> }
>
> EX: 2
> #include <stdio>
> using namespace std;
> int main()
> {
> cout << "Test";
> return 0;
> }
>
> EX: 3
> #include <stdio>
> int main()
> {
> std::cout << "Test";
> return 0;
> }
>
> Eks. 1 er jo uddateret..
>
> Men ex 2 og 3, er det hvad ma kalder C99?
Alle tre ekesmpler er fejl. <stdio.h> er C, også C99, og bruges
sammen med printf med venner.
cout er C++ og bruges sammen med <iostream>, eller før C++ blev
standardiseret, sammen med <iostream.h>.
Hvis du skriver iostream i stedet for stdio så er eksempel 2 og 3
standard C++, og eksempel 1 pre-standard C++. Der er kun en officiel
C++ standard, så vi behøver ikke numre endnu.
C99 har ikke noget med C++ at gøre, det er en C standard. Der ville
man skrive
#include <stdio.h>
int main()
{
printf ("Test");
return 0;
}
og det virker i alle version af C. Du kan ikke droppe ".h" eller
bruge namespaces (std::) i C.
| |
Mogens Hansen (23-11-2003)
| Kommentar Fra : Mogens Hansen |
Dato : 23-11-03 19:39 |
|
"Per Abrahamsen" <abraham@dina.kvl.dk> wrote
[8<8<8<]
> Der er kun en officiel
> C++ standard, så vi behøver ikke numre endnu.
Jeg mener nu at der er 2:
ISO/IEC 14882:1998(E)
ISO/IEC 14882:2003
hvor den fra 2003 er en revision af standarden fra 1998.
Det er min opfattelse at der er blevet rettet fejl og tvetydigheder
(Technical Corrigendum No. 1), men der er ikke tilføjet nye faciliteter.
Det er sidstnævnte der er snart (december 2003) udkommet som bog fra Wiley -
ISBN 0-470-84674-7.
Der findes en PDF fil "C + + standard-unofficial list of revisions", der
indeholder ændringerne på Andrew König's
hjemmeside( http://www.research.att.com/~ark/c++std/2003/pdf/revisions.pdf)
Venlig hilsen
Mogens Hansen
| |
Michael aka Slowhand (23-11-2003)
| Kommentar Fra : Michael aka Slowhand |
Dato : 23-11-03 22:15 |
|
"Per Abrahamsen" <abraham@dina.kvl.dk> skrev i en meddelelse
news:rjbrr3ugtl.fsf@sheridan.dina.kvl.dk...
> "Zodiaz12" <dont@mail.me> writes:
>
> > Her er lige et par eksempler:
> >
> > EX: 1
> > #include <stdio.h>
> > int main()
> > {
> > cout << "Test";
> > return 0;
> > }
> >
> > EX: 2
> > #include <stdio>
> > using namespace std;
> > int main()
> > {
> > cout << "Test";
> > return 0;
> > }
> >
> > EX: 3
> > #include <stdio>
> > int main()
> > {
> > std::cout << "Test";
> > return 0;
> > }
> >
> > Eks. 1 er jo uddateret..
> >
> > Men ex 2 og 3, er det hvad ma kalder C99?
>
> Alle tre ekesmpler er fejl. <stdio.h> er C, også C99, og bruges
> sammen med printf med venner.
>
> cout er C++ og bruges sammen med <iostream>, eller før C++ blev
> standardiseret, sammen med <iostream.h>.
>
> Hvis du skriver iostream i stedet for stdio så er eksempel 2 og 3
> standard C++, og eksempel 1 pre-standard C++. Der er kun en officiel
> C++ standard, så vi behøver ikke numre endnu.
>
> C99 har ikke noget med C++ at gøre, det er en C standard. Der ville
> man skrive
>
> #include <stdio.h>
> int main()
> {
> printf ("Test");
> return 0;
> }
>
> og det virker i alle version af C. Du kan ikke droppe ".h" eller
> bruge namespaces (std::) i C.
Ja, det har du ret i!
Det var en tastebommert!
Jeg var vist ikke hurtig nok til at tilføje min fejlrettelse.. som kom i en
senere post!
| |
|
|