/ 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
ANSI C?
Fra : nic@aub.dk


Dato : 14-03-07 08:04

Jeg har et spørgsmål til diverse kloge hoveder ang ANSI C. Vi har købt
et program som laver noget kode; dokumentationen påstår at det er ANSI
C, men der er en enkelt detalje som MS Visual C++.NET ikke vil spise
når det findes i en "C" funktion:
{
int a;
SomeFunction();
int x, y; // <-- C2143 missing ';' before 'type'
....
Dette virker fint med en C++ compiler, men det er nu almindelig
gammeldags C vi roder med her. Byttes de to sidste linier rundt, dvs
{
int a;
int x, y;
SomeFunction();
....
så virker det fint.
Det kan godt være det er et totalt newbie spørgsmål, men jeg har altid
selv programmeret på den nederste måde og derfor aldrig tænkt over det
før... Overholder den øverste ANSI C standarden? Er det koden eller
compileren den er gal med?

MVH Nicolai


 
 
Kim Schulz (14-03-2007)
Kommentar
Fra : Kim Schulz


Dato : 14-03-07 08:17

On 14 Mar 2007 00:04:05 -0700
nic@aub.dk wrote:

> Jeg har et spørgsmål til diverse kloge hoveder ang ANSI C. Vi har købt
> et program som laver noget kode; dokumentationen påstår at det er ANSI
> C, men der er en enkelt detalje som MS Visual C++.NET ikke vil spise
> når det findes i en "C" funktion:
> {
> int a;
> SomeFunction();
> int x, y; // <-- C2143 missing ';' before 'type'
> ...
> Dette virker fint med en C++ compiler, men det er nu almindelig
> gammeldags C vi roder med her. Byttes de to sidste linier rundt, dvs
> {
> int a;
> int x, y;
> SomeFunction();
> ...
> så virker det fint.
> Det kan godt være det er et totalt newbie spørgsmål, men jeg har altid
> selv programmeret på den nederste måde og derfor aldrig tænkt over det
> før... Overholder den øverste ANSI C standarden? Er det koden eller
> compileren den er gal med?

Det øverste er ikke ANSI C da variabler skal defineres først i et scope
og du derfor ikke lige kan presse et funktionskald ind imellem
dem.

--
Kim Schulz | Private : http://www.schulz.dk
Kim@schulz.dk | Business: http://www.devteam.dk
+45 5190 4262 | Sparetime: http://www.fundanemt.com

Kent Friis (14-03-2007)
Kommentar
Fra : Kent Friis


Dato : 14-03-07 19:56

Den 14 Mar 2007 00:04:05 -0700 skrev nic@aub.dk:
> Jeg har et spørgsmål til diverse kloge hoveder ang ANSI C. Vi har købt
> et program som laver noget kode; dokumentationen påstår at det er ANSI
> C, men der er en enkelt detalje som MS Visual C++.NET ikke vil spise
> når det findes i en "C" funktion:
> {
> int a;
> SomeFunction();
> int x, y; // <-- C2143 missing ';' before 'type'
> ...
>
> så virker det fint.
> Det kan godt være det er et totalt newbie spørgsmål, men jeg har altid
> selv programmeret på den nederste måde og derfor aldrig tænkt over det
> før... Overholder den øverste ANSI C standarden? Er det koden eller
> compileren den er gal med?

Det er C99, nyeste standard.

(Jeg er ikke sikker på om det er ANSI eller ISO eller whatever).

Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).

Michael Rasmussen (14-03-2007)
Kommentar
Fra : Michael Rasmussen


Dato : 14-03-07 20:33

On 14 Mar 2007 18:55:34 GMT
Kent Friis <nospam@nospam.invalid> wrote:

>
> Det er C99, nyeste standard.
>
> (Jeg er ikke sikker på om det er ANSI eller ISO eller whatever).
>
C99 er en officiel ANSI standard. Problemet er blot, at der vist ikke
er nogen nuværende compilere, ud over gcc (der kun er 98%), der er 100%
ANSI kompatibel. Så måske er Nicolais problem, at hans compiler kun er
C89 kompatibel.

C99 option til gcc: gcc --std=c99
Default er gnu89: c90 med GNU udvidelser.

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917
A computer is like air conditioning: it becomes useless when you open
windows.

Michael Rasmussen (14-03-2007)
Kommentar
Fra : Michael Rasmussen


Dato : 14-03-07 20:38

On Wed, 14 Mar 2007 20:33:12 +0100
Michael Rasmussen <mir@miras.org> wrote:

>
> C99 option til gcc: gcc --std=c99
> Default er gnu89: c90 med GNU udvidelser.
>
For lige at udrede forvirringen:
ANSI C89 = ISO C90
ANSI C99 = ISO C99

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917
A computer is like air conditioning: it becomes useless when you open
windows.

Ukendt (23-03-2007)
Kommentar
Fra : Ukendt


Dato : 23-03-07 20:53

On Wed, 14 Mar 2007 20:37:45 +0100, Michael Rasmussen <mir@miras.org>
wrote:

>For lige at udrede forvirringen:
>ANSI C89 = ISO C90
>ANSI C99 = ISO C99

Hmmm, jeg troede nu ellers at ISO/IEC overtog specificationsarbejdet,
begyndende med ISO C90 og at der ikke er noget der hedder ANSI Cxx i
nyere specs.?

/Thomas

Mogens Hansen (24-03-2007)
Kommentar
Fra : Mogens Hansen


Dato : 24-03-07 05:35


"Thomas Lykkeberg" <no way> wrote in message
news:rvb8035p05funass0omqacmb98jk0ejol0@4ax.com...

[8<8<8<]
> Hmmm, jeg troede nu ellers at ISO/IEC overtog specificationsarbejdet,
> begyndende med ISO C90 og at der ikke er noget der hedder ANSI Cxx i
> nyere specs.?

ANSI er American National Standard Institue.
ISO er International Organization for Standardization.

Arbejdet med at standardisere C og C++ foregår under ISO med repræsentater
fra en lang række lande.
Efter at en standard er blevet vedtaget under ISO, anerkender de nationale
standardiserings organer dem i (forhåbentlig) uændret form.

Dermed har de givetvis også f.eks. et BS (British Standard), DS (Dansk
Standard) og DIN (Deutche Industri Norm) numre for dem.

--
Venlig hilsen

Mogens Hansen



Michael Rasmussen (23-03-2007)
Kommentar
Fra : Michael Rasmussen


Dato : 23-03-07 22:36

On Fri, 23 Mar 2007 20:52:32 +0100
Thomas Lykkeberg <no way> wrote:

>
> Hmmm, jeg troede nu ellers at ISO/IEC overtog specificationsarbejdet,
> begyndende med ISO C90 og at der ikke er noget der hedder ANSI Cxx i
> nyere specs.?
Hvis du kigger på årstallene, var det også, hvad jeg prøvede af vise

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917
A computer is like air conditioning: it becomes useless when you open
windows.

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

Månedens bedste
Årets bedste
Sidste års bedste