Joeri FrMisschien zitten er nog te lange regels of teveel bewerkingen in 1 regel?
Dat betekend dus dat ze een paar kritische dingen aan de compiler veranderd hebben. De code mag niet zomaar "functioneel" ander zijn bij een nieuwe release van een compiler. Zie het eigenlijk als een bug in de compiler.
Hoe een compiler omgaat met lange berekeningen heb je zelf in de hand. De ene compiler is de andere compiler en kan uit dezelfde vergelijking een andere uitkomst komen. Om dit voor te gebruik je dan de haakjes om prioriteit te geven.
bijvoorbeed c is van het type char.
Wat is de uitkomst van c = 45 * 4 / 11 ?
De meeste zullen meteen 16 roepen.
Ik denk dat er 0 uit zal komen.
Waarom?
De meeste compiler werken van rechts naar links. Dus eerst "4 / 11" wat resulteert in 0 en dan de vermenigvuldiging wat 45 * 0 = 0 geeft.
Als het gewenste resultaat 16 was moet je dus haakjes aangeven zodat de compiler weet wat je wilt...
Dus : c = ( 45 * 4 ) / 11
Joeri Frja, de flitspalen staan allemaal mooi in de eeprom. (8143 palen).
Het volgende gebeurde;
- ik compileerde de 1.26b versie zelf
- inladen in 876A
- opstarten: groene led knipper onregelmatig ('radartje' beweegt ook onregelmatig)
- bij een 'fix van de gps gaat het alarm verschillende keren af
Beats me.
Zal inderdaad dan wel op meerdere plekken fout gaan.
Joeri FrDan heb ik opnieuw gecompileerd met de regel i=i-128 apart.
Nu loopt het programma mooi, maar vindt geen enkele flitspaal, buiten 1tje op een plaats waar absoluut geen staat.
Lijkt inderdaad op dat een berekening fout gecompileerd is...
Zou bij de compare functie kunnen zijn.
Ben