Кажется довольно ясным, что remquo
не не дает значение x / y
. Это дает только несколько младших бит коэффициента. Вот пример:
#define _ISOC99_SOURCE
#include <stdio.h>
#include <math.h>
int main()
{
int quo;
double res = remquo(88888.0, 3.0, &quo);
printf("%f %d\n", res, quo);
return 0;
}
$
$ cc -o rq rq.c
$ rq
1.000000 5
Я получаю этот же ответ для OS X 10.8.2 (Xcode 4.6) и в системе Linux. Полный коэффициент равен 29629, а 5 - это младшие 3 бита.
Стоит отметить, что частное может очень легко быть слишком большим, чтобы быть представленным как int. Так что на самом деле лучшее, что вы можете сделать, это дать несколько младших битов.
Во всяком случае, это не «языковая законность». Спецификация говорит вам кое-что довольно конкретное.