Can't create Code in einer function
-
Hallo
Ich muß mal wider mit einer blöden frage nervenIch habe in einem Microchip PIC18Fxxx USB App
folgendes Problem in folgender Routine.Im Orginal habe ich folgenden Ausdruck
pROM = (ROM uint8_t*) (ProgrammedPointer - BufferedDataIndex);und der Compiler meckert nicht, habe auch geprüft ob das
IF Statement stimmt.Habe dann das Program auf meine Bedürfnisse angepasst
und mit den Klammer s.o. hat der Comiler gemeckert
Can't create Code in einer functionHabe dann herausgefunden das es so geht , ohne Klammern, nur die Frage warum,
dies verhalten.pROM = (ROM uint8_t*) ProgrammedPointer - BufferedDataIndex;
void WriteFlashBlock(void) //Use to write blocks of data to flash.
{
static unsigned char i;
static unsigned char BytesTakenFromBuffer;
static unsigned char CorrectionFactor;#ifdef __XC8__
static ROM uint8_t* pROM;pROM = (ROM uint8_t*) ProgrammedPointer - BufferedDataIndex;
TBLPTRU = 0x00;
TBLPTRH = (uint8_t)((uint16_t)pROM >> 8);
TBLPTRL = (uint8_t)pROM;
#else
TBLPTR = (ProgrammedPointer - BufferedDataIndex);
#endif[/code]
-
Dein Beitrag enthält viel Information, aber nur wenige davon von Relevanz. Interessant wären insbesondere:
-Die vollständige Fehlermeldung.
-Die Definitionen der im fehlerhaften Ausdruck vorkommenden Bezeichner.
-Eine Anleitung, wie man seinen Code in diesem Forum lesbar formatiert.Ein allgemeiner Tipp: Programmieren bedeutet nicht, so lange zufällig Sonderzeichen im Code zu verteilen, bis der Compiler ihn akzeptiert. "Compilierbar" bedeutet nicht das gleiche wie "Korrekt". Du musst deinen eigenen Code verstehen. Du musst von jedem einzelnen Zeichen in deinem Code genau wissen, wo und warum du es setzt. Ein einzelnes geändertes Zeichen kann den Sinn eines Codestücks komplett verändern.