Thread PERL vs. C: gleicher Code, anderes Ergebnis (47 answers)
Opened by docsnyder at 2005-09-14 16:16

docsnyder
 2005-09-14 22:09
#57977 #57977
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=murphy,14.Sep..2005, 19:42]Abgesehen davon, dass das Verhalten dieses Konstruktes im C Standard nicht definiert ist, warnt einen der GCC auch noch davor:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$ cat >test.c
#include <stdio.h>

int main(void) {
int i = 0;
i = i++;
printf("%d\n", i);
return 0;
}
$ gcc-3.3 -Wall -O0 -g1 -o test test.c
test.c: In function `main':
test.c:5: warning: operation on `i' may be undefined
$ ./test
1
$ gcc-4.0 -Wall -O0 -g1 -o test test.c
test.c: In function 'main':
test.c:5: warning: operation on 'i' may be undefined
$ ./test
1
$ gcc-3.3 -Wall -O3 -g0 -o test test.c
test.c: In function `main':
test.c:5: warning: operation on `i' may be undefined
$ ./test
1
$ gcc-4.0 -Wall -O3 -g0 -o test test.c
test.c: In function 'main':
test.c:5: warning: operation on 'i' may be undefined
$ ./test
1


Wenn der Compiler schon schreit, dass er nicht weiß, was herauskommen soll, sollte man sich nicht über komische Ergebnisse wundern -- aber immerhin ist das Ergebnis konstant, wenn man die Optimierungseinstellung verändert.

Da habe ich also schon wesentlich merkwürdigeres, hässlicheres und nicht mit Compilerwarnungen versehenes Verhalten bei GCC erlebt.

Ich verstehe also gar nicht, was man damit für ein Problem haben sollte...[/quote]
@murphy

Also mein gcc (Version kann ich erst morgen im Büro wieder nachschauen) bringt keine Warnings.

Gruß, Doc

View full thread PERL vs. C: gleicher Code, anderes Ergebnis