Firstly, according to the C standard, is the C array index variable interpreted as a signed or unsigned integer?
Secondly, what does Keil do?
What about:
char myarray[65530U];