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

printf problem for integers > 32767

I am using printf function to send data to serial port. The mcu has to send a number which may be upto 65535.

But for numbers larger than 32767, I was getting negative numbers. To test it I wrote following code

        unsigned int i;
        for(i=32760;i<=32770;i++)
                printf("%d\n", i);    //printf ("char %bd int %d long %ld\n",a,b,c);

What I was getting in VB application is


32760
32761
32762
32763
32764
32765
32766
32767
-32768
-32767
-32766

So I tried the same program in Pelles C for Windows . The result was perfect.


32760
32761
32762
32763
32764
32765
32766
32767
32768
32769
32770
Press any key to continue...

Can somebody tell me what is wrong here?

Parents Reply Children