This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Remainder ( % ) operator and GCC


Ladislav Mecir <lmecir@mbox.vol.cz> writes:

> Could you give me an advice how to make the following program (and
> programs using many times the % operator) run reliably when compiled
> by GCC on different operating systems even when the user gives -1 as
> the B value?
> 
> #include <stdio.h>
> int main(int argc, char *argv[]) {
>     int a = -2147483647;
>     int b;
>     printf ("The value of B: ");
>     scanf ("%i", &b);
>     printf ("%i %% %i: %i", a, b, (a - 1) % b);
>     return 0;
> }

Don't use '%'.  It is machine dependent when used with a negative
number.

This is not a gcc question.

Ian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]