/
Forside
/
Teknologi
/
Udvikling
/
C/C++
/
Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn
*
Kodeord
*
Husk mig
Brugerservice
Kom godt i gang
Bliv medlem
Seneste indlæg
Find en bruger
Stil et spørgsmål
Skriv et tip
Fortæl en ven
Pointsystemet
Kontakt Kandu.dk
Emnevisning
Kategorier
Alfabetisk
Karriere
Interesser
Teknologi
Reklame
Top 10 brugere
C/C++
#
Navn
Point
1
BertelBra..
2425
2
pmbruun
695
3
Master_of..
501
4
Bech_bb
500
5
kyllekylle
500
6
jdjespers..
500
7
gibson
300
8
scootergr..
300
9
molokyle
287
10
strarup
270
Hvilken compiler tager fejl her?
Fra :
Anders Wegge Keller
Dato :
19-10-10 22:30
Jeg er ved at konvertere noget tudsegammelt kode fra en platform til
en anden. I den forbindelse er jeg faldet over en konstruktion jeg
skulle bruge lidt tid på at gennemskue fejlen i:
typedef strum m {
struct {
word a;
word b;
} s[4];
} m;
Original kode:
doit(m *p) {
...
x = p->s.a[1];
}
Med en moderne compiler giver det en fejl:
error: request for member a in something not a structure or union
Omskriver jeg den kriminelle linie til
x = p->s[1].a;
FÃ¥r jeg i det mindste compileren til at holde mund (Der er 1200
compilefejl tilbage, før jeg kan teste det). Men jeg er kommet til at
spekulere på om originalversionen er korrekt efter K&R, eller om det
blot er endnu[1] en mangel i vores gamle compiler. Eftersom koden her
har været i produktion i 12-13 år, er der ingen tvivl om at det der er
blevet genereret har virket i et eller andet omfang. Men hvorfor?
1. En anden ting vi har fundet er at det ikke kom så nøje om man
refererede til et struct member der fandtes, blot structen var
defineret i samme headerfil som en anden struct der hade et member
med samme navn.
--
/Wegge
Leder efter redundant peering af dk.*,linux.debian.*
Mogens Hansen (
20-10-2010
)
Kommentar
Fra :
Mogens Hansen
Dato :
20-10-10 17:34
"Anders Wegge Keller" <wegge@wegge.dk> wrote in message
news:8739s1x44u.fsf@huddi.jernurt.dk...
[8<8<8<]
> Men jeg er kommet til at
> spekulere på om originalversionen er korrekt efter K&R, eller om det
> blot er endnu[1] en mangel i vores gamle compiler.
Det må vist være en fejl i den gamle compiler - a er ikke et array.
--
Venlig hilsen
Mogens Hansen
Søg
Alle emner
Teknologi
Udvikling
C/C++
Indstillinger
Spørgsmål
Tips
Usenet
Reklame
Statistik
Spørgsmål :
177554
Tips :
31968
Nyheder :
719565
Indlæg :
6408852
Brugere :
218888
Månedens bedste
Årets bedste
Sidste års bedste
Copyright © 2000-2024 kandu.dk. Alle rettigheder forbeholdes.