Remainder ( % ) operator and GCC
Frans Englich
frans.englich@telia.com
Wed Nov 9 19:34:00 GMT 2005
On Wednesday 09 November 2005 19:19, Ian Lance Taylor wrote:
> 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.
What should one use instead? What is the portable, machine-independent
alternative?
Cheers,
Frans
More information about the Gcc-help
mailing list