Collapse the table of content
Expand the table of content
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer


Computes the quotient and remainder of a long integer.

ldiv_t ldiv(
   long int numer,
   long int denom 






ldiv returns a structure of type ldiv_t that comprises both the quotient and the remainder.

The ldiv function divides numer by denom, computing the quotient and remainder. The sign of the quotient is the same as that of the mathematical quotient. The absolute value of the quotient is the largest integer that is less than the absolute value of the mathematical quotient. If the denominator is 0, the program terminates with an error message. ldiv is the same as div, except that the arguments of ldiv and the members of the returned structure are all of type long int.

The ldiv_t structure, defined in STDLIB.H, contains long int quot, the quotient, and long int rem, the remainder.

Routine Required header Compatibility



ANSI, Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003

For additional compatibility information, see Compatibility in the Introduction.


All versions of the C run-time libraries.

// crt_ldiv.c

#include <stdlib.h>
#include <math.h>
#include <stdio.h>

int main( void )
   long x = 5149627, y = 234879;
   ldiv_t div_result;

   div_result = ldiv( x, y );
   printf( "For %ld / %ld, the quotient is ", x, y );
   printf( "%ld, and the remainder is %ld\n", 
            div_result.quot, div_result.rem );

For 5149627 / 234879, the quotient is 21, and the remainder is 217168

Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.

© 2015 Microsoft