1 /* lldiv( long long int, long long int ) 2 3 This file is part of the Public Domain C Library (PDCLib). 4 Permission is granted to use, modify, and / or redistribute at will. 5 */ 6 7 #include <stdlib.h> 8 9 #ifndef REGTEST 10 lldiv(long long int numer,long long int denom)11lldiv_t lldiv( long long int numer, long long int denom ) 12 { 13 lldiv_t rc; 14 rc.quot = numer / denom; 15 rc.rem = numer % denom; 16 /* TODO: pre-C99 compilers might require modulus corrections */ 17 return rc; 18 } 19 20 #endif 21 22 #ifdef TEST 23 24 #include "_PDCLIB_test.h" 25 main(void)26int main( void ) 27 { 28 lldiv_t result; 29 result = lldiv( 5ll, 2ll ); 30 TESTCASE( result.quot == 2 && result.rem == 1 ); 31 result = lldiv( -5ll, 2ll ); 32 TESTCASE( result.quot == -2 && result.rem == -1 ); 33 result = lldiv( 5ll, -2ll ); 34 TESTCASE( result.quot == -2 && result.rem == 1 ); 35 TESTCASE( sizeof( result.quot ) == sizeof( long long ) ); 36 TESTCASE( sizeof( result.rem ) == sizeof( long long ) ); 37 return TEST_RESULTS; 38 } 39 40 #endif 41