This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

array index type of signed int

Hi list,

i'm working with c51v750a. My problem:

int array[ 0] _at_ 0x7600; //xdata
unsigned char index = 0; //xdata

printf("%d", &array[ index]);
printf("%d", &array[(unsigned char)(index - 1)]); //what is wrong?

// Result:
// 30208 --> 0x7600 (correct)
// 30206 --> 0x75FE == array[ -1] incorrect, // expected array[255] @ 0x77FE

I've read in Compiler's changelog [v7.50] that there was a fix for array with signed int index.

I don't need a workaround, but this seems like a compiler-bug. Or is my "logic" incorrect?

Thanks in advance,
Lars

Parents
  • Stefan,
    did you compile with c51v750a ? BTW, the software-versions which are displayed in the uV2 are:
    C-Compiler C51.exe v7.50
    Assembler A51.exe v7.10
    Linker BL51.exe v5.12
    Librarian LIB51.exe v4.24

    I'm sure i've updated to C51v750a.

    I will compile the example code with an older version and post the result here.

Reply
  • Stefan,
    did you compile with c51v750a ? BTW, the software-versions which are displayed in the uV2 are:
    C-Compiler C51.exe v7.50
    Assembler A51.exe v7.10
    Linker BL51.exe v5.12
    Librarian LIB51.exe v4.24

    I'm sure i've updated to C51v750a.

    I will compile the example code with an older version and post the result here.

Children