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

Why Keil generates differen outputs from the other compilers with the same code?

I am using the following code in different compiler:

#include <stdio.h>

int main(void)
{
  int i = 0;
  int b[10] = {100,101,102,103,104,105,106,107,108,109};
  int c[10] = {0,1,2,3,4,5,6,7,8,9};

  b[i + 0] = c[i++ % 100];
  b[i + 0] = c[i++ % 100];
  b[i + 0] = c[i++ % 100];
  b[i + 0] = c[i++ % 100];
  b[i + 0] = c[i++ % 100];
  b[i + 0] = c[i++ % 100];

  for(i = 0; i < 10; i++)
     printf("b[%d] = %d\n",i,b[i]);
  return 0;
}

But I am getting different output by using Keil,
the output as follows:

//Keils output... uVision3 V3.53, compiler Armcc.exe
b[0] = 100
b[1] = 0
b[2] = 1
b[3] = 2
b[4] = 3
b[5] = 4
b[6] = 5
b[7] = 107
b[8] = 108
b[9] = 109

//Microsoft Visual STD 6.0 output
b[0] = 0
b[1] = 1
b[2] = 2
b[3] = 3
b[4] = 4
b[5] = 5
b[6] = 106
b[7] = 107
b[8] = 108
b[9] = 109
Press any key to continue



//Microsoft Visual STD 2005 output
b[0] = 0
b[1] = 1
b[2] = 2
b[3] = 3
b[4] = 4
b[5] = 5
b[6] = 106
b[7] = 107
b[8] = 108
b[9] = 109
Press any key to continue

//Borland C++Builder6.0 output....
b[0] = 0
b[1] = 1
b[2] = 2
b[3] = 3
b[4] = 4
b[5] = 5
b[6] = 106
b[7] = 107
b[8] = 108
b[9] = 109

Could you tell me something about this problem?

0