Gast
2007-10-06, 09:24:32
Wenn man gcc mit den optionen
-ansi -pedantic -Wall
ausführt, dann wird der Code auf C90 kompatibilität geprüft.
D.h. so etwas wie:
int
main (int argc, char *argv[])
{
int i, n = argc;
double x[n];
for (i = 0; i < n; i++)
x[i] = i;
return 0;
}
funktioniert nicht.
Entfernt man das -pedantic und verwendet stattdessen -std=c99 dann wird der Code akzeptiert.
Die Frage lautet also, warum richtet sich die Option -pedantic immer noch an c90?
Code wie oben ist doch seit c99 erlaubt, oder?
Das leider auch nicht funktioniert ist der Kommaoperator //
wenn man die -ansi Option verwendet.
Dieser Operator geht erst, wenn man anstatt -ansi
-std=c99 verwendet.
Warum ist das so?
c99 ist doch selbst ansi , daher müßte der // Operator doch auch mit der -ansi option funktionieren.
Oder ist auch hier wieder der Fall, daß -ansi nur c90 ist?
-ansi -pedantic -Wall
ausführt, dann wird der Code auf C90 kompatibilität geprüft.
D.h. so etwas wie:
int
main (int argc, char *argv[])
{
int i, n = argc;
double x[n];
for (i = 0; i < n; i++)
x[i] = i;
return 0;
}
funktioniert nicht.
Entfernt man das -pedantic und verwendet stattdessen -std=c99 dann wird der Code akzeptiert.
Die Frage lautet also, warum richtet sich die Option -pedantic immer noch an c90?
Code wie oben ist doch seit c99 erlaubt, oder?
Das leider auch nicht funktioniert ist der Kommaoperator //
wenn man die -ansi Option verwendet.
Dieser Operator geht erst, wenn man anstatt -ansi
-std=c99 verwendet.
Warum ist das so?
c99 ist doch selbst ansi , daher müßte der // Operator doch auch mit der -ansi option funktionieren.
Oder ist auch hier wieder der Fall, daß -ansi nur c90 ist?