home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 May / Pcwk5b98.iso / Borland / Cplus45 / BC45 / INC.PAK / STDLIB.H < prev    next >
C/C++ Source or Header  |  1995-08-29  |  19KB  |  581 lines

  1. /*  stdlib.h
  2.  
  3.     Definitions for common types, variables, and functions.
  4.  
  5. */
  6.  
  7. /*
  8.  *      C/C++ Run Time Library - Version 6.5
  9.  *
  10.  *      Copyright (c) 1987, 1994 by Borland International
  11.  *      All Rights Reserved.
  12.  *
  13.  */
  14.  
  15. #ifndef __STDLIB_H
  16. #define __STDLIB_H
  17.  
  18. #if !defined(___DEFS_H)
  19. #include <_defs.h>
  20. #endif
  21.  
  22. #ifndef NULL
  23. #include <_null.h>
  24. #endif
  25.  
  26.  
  27. #if !defined(RC_INVOKED)
  28.  
  29. #if defined(__STDC__)
  30. #pragma warn -nak
  31. #endif
  32.  
  33. #pragma option -a-
  34.  
  35. #endif  /* !RC_INVOKED */
  36.  
  37.  
  38. #ifndef _SIZE_T
  39. #define _SIZE_T
  40. typedef unsigned size_t;
  41. #endif
  42.  
  43. #ifndef _DIV_T
  44. #define _DIV_T
  45. typedef struct {
  46.         int     quot;
  47.         int     rem;
  48. } div_t;
  49. #endif
  50.  
  51. #ifndef _LDIV_T
  52. #define _LDIV_T
  53. typedef struct {
  54.         long    quot;
  55.         long    rem;
  56. } ldiv_t;
  57. #endif
  58.  
  59. #ifndef __cplusplus
  60. #ifndef _WCHAR_T
  61. #define _WCHAR_T
  62. typedef unsigned short wchar_t;
  63. #endif
  64. #endif
  65.  
  66. #define MB_CUR_MAX 1
  67.  
  68. /* Maximum value returned by "rand" function
  69. */
  70. #define RAND_MAX 0x7FFFU
  71.  
  72. #define EXIT_SUCCESS 0
  73. #define EXIT_FAILURE 1
  74.  
  75. typedef void (_USERENTRY * atexit_t)(void);
  76.  
  77. /*
  78.   These 2 constants are defined in MS's stdlib.h.
  79. */
  80.  
  81. #define DOS_MODE    0  /* DOS 16-bit */
  82. #define OS2_MODE    1  /* OS/2 16-bit */
  83.  
  84. #if !defined(__FLAT__)
  85.  
  86.  
  87. #ifdef __cplusplus
  88. extern "C" {
  89. #endif
  90.  
  91. void        _RTLENTRY abort(void);
  92.  
  93. #if !defined(__ABS_DEFINED)
  94. #define __ABS_DEFINED
  95.  
  96. int         _RTLENTRY __abs__(int);
  97. #ifdef __cplusplus
  98. inline int _RTLENTRY  abs(int __x) { return __abs__(__x); }
  99. #else
  100. int         _RTLENTRYF abs(int __x);
  101. #  define abs(x)   __abs__(x)
  102. #endif
  103.  
  104. #endif /* __ABS_DEFINED */
  105.  
  106. int         _RTLENTRY  atexit(void (_USERENTRY *__func)(void));
  107. double      _RTLENTRY  atof(const char _FAR *__s);
  108. int         _RTLENTRYF atoi(const char _FAR *__s);
  109. long        _RTLENTRYF atol(const char _FAR *__s);
  110. void _FAR * _RTLENTRYF bsearch(const void _FAR *__key, const void _FAR *__base,
  111.                            size_t __nelem, size_t __width,
  112.                            int (_USERENTRY *fcmp)(const void _FAR *,
  113.                            const void _FAR *));
  114. void _FAR * _RTLENTRY  calloc(size_t __nitems, size_t __size);
  115. div_t       _RTLENTRY  div(int __numer, int __denom);
  116. void        _RTLENTRY  exit(int __status);
  117. void        _RTLENTRY  free(void _FAR *__block);
  118. char _FAR * _RTLENTRYF getenv(const char _FAR *__name);
  119. long        _RTLENTRY  labs(long __x);
  120. ldiv_t      _RTLENTRY  ldiv(long __numer, long __denom);
  121. void _FAR * _RTLENTRY  malloc(size_t __size);
  122. int         _RTLENTRYF _EXPFUNC mblen(const char _FAR *__s, size_t __n);
  123. size_t      _RTLENTRYF _EXPFUNC mbstowcs(wchar_t _FAR *__pwcs, const char _FAR *__s,
  124.                                     size_t __n);
  125. int         _RTLENTRYF _EXPFUNC mbtowc(wchar_t _FAR *__pwc, const char _FAR *__s, size_t __n);
  126. void        _RTLENTRYF _EXPFUNC qsort(void _FAR *__base, size_t __nelem, size_t __width,
  127.                        int _USERENTRY (*_EXPFUNC __fcmp)(const void _FAR *, const void _FAR *));
  128. int         _RTLENTRY  rand(void);
  129. void  _FAR *_RTLENTRY  realloc(void _FAR *__block, size_t __size);
  130. void        _RTLENTRY  srand(unsigned __seed);
  131. double      _RTLENTRY  strtod(const char _FAR *__s, char _FAR *_FAR *__endptr);
  132. long        _RTLENTRY _EXPFUNC strtol(const char _FAR *__s, char _FAR *_FAR *__endptr,
  133.                                     int __radix);
  134. long double _RTLENTRY  _strtold(const char _FAR *__s, char _FAR *_FAR *__endptr);
  135. unsigned long _RTLENTRY _EXPFUNC strtoul(const char _FAR *__s, char _FAR *_FAR *__endptr,
  136.                                        int __radix);
  137. int         _RTLENTRY _EXPFUNC system(const char _FAR *__command);
  138. size_t      _RTLENTRYF _EXPFUNC wcstombs(char _FAR *__s, const wchar_t _FAR *__pwcs,
  139.                                     size_t __n);
  140. int         _RTLENTRYF _EXPFUNC wctomb(char _FAR *__s, wchar_t __wc);
  141.  
  142. #ifdef __cplusplus
  143. }
  144. #endif
  145.  
  146. extern  unsigned        _RTLENTRY _psp;
  147.  
  148. #if !defined(__STDC__) /* obsolete */
  149. #define environ  _environ
  150. #endif
  151.  
  152. extern  char          **_RTLENTRY _environ;
  153. extern  int             _RTLENTRY _fmode;
  154. extern  unsigned char   _RTLENTRY _osmajor;
  155. extern  unsigned char   _RTLENTRY _osminor;
  156. extern  unsigned int    _RTLENTRY _version;
  157.  
  158. #if !__STDC__
  159. #define sys_nerr     _sys_nerr
  160. #define sys_errlist  _sys_errlist
  161. #endif
  162.  
  163. #if defined( _RTLDLL )
  164.  
  165. #ifdef __cplusplus
  166. extern "C" {
  167. #endif
  168. extern  char far * far * far  _RTLENTRY __get_sys_errlist(void);
  169. extern  int  far              _RTLENTRY __get_sys_nerr(void);
  170. #ifdef __cplusplus
  171. }
  172. #endif
  173.  
  174. #define _sys_errlist  __get_sys_errlist()
  175. #define _sys_nerr     __get_sys_nerr()
  176.  
  177. #else
  178. extern  char      _FAR *_RTLENTRY _sys_errlist[];
  179. extern  int             _RTLENTRY _sys_nerr;
  180. #endif
  181.  
  182.  
  183. #if !defined(__STDC__)
  184. #if defined(__cplusplus)
  185. inline int  _RTLENTRY atoi(const char _FAR *__s) { return (int) atol(__s); }
  186. #else
  187. #define atoi(s)     ((int) atol(s))
  188. #endif
  189. #endif
  190.  
  191. /* Constants for MSC pathname functions */
  192.  
  193. #define _MAX_PATH       80
  194. #define _MAX_DRIVE      3
  195. #define _MAX_DIR        66
  196. #define _MAX_FNAME      9
  197. #define _MAX_EXT        5
  198.  
  199. #ifdef __cplusplus
  200. extern "C" {
  201. #endif
  202.  
  203. long double    _RTLENTRY   _atold(const char _FAR *__s);
  204. unsigned char  _RTLENTRY   _crotl(unsigned char __value, int __count);
  205. unsigned char  _RTLENTRY   _crotr(unsigned char __value, int __count);
  206. char   _FAR   *_RTLENTRY   ecvt(double __value, int __ndig, int _FAR *__dec,
  207.                            int _FAR *__sign);
  208. void           _RTLENTRY   _exit(int __status);
  209. char   _FAR   *_RTLENTRY   fcvt(double __value, int __ndig, int _FAR *__dec,
  210.                            int _FAR *__sign);
  211. char _FAR     *_RTLENTRYF  _EXPFUNC _fullpath( char _FAR *__buf,
  212.                                  const char _FAR *__path,
  213.                                  size_t __maxlen );
  214. char   _FAR   *_RTLENTRY   gcvt(double __value, int __ndec, char _FAR *__buf);
  215. char   _FAR   *_RTLENTRYF  _EXPFUNC itoa(int __value, char _FAR *__string, int __radix);
  216. void   _FAR   *_RTLENTRY   _EXPFUNC lfind(const void _FAR *__key, const void _FAR *__base,
  217.                                  size_t _FAR *__num, size_t __width,
  218.                                  int _USERENTRY(*_EXPFUNC __fcmp)(const void _FAR *,
  219.                                  const void _FAR *));
  220. unsigned long  _RTLENTRY   _lrotl(unsigned long __val, int __count);
  221. unsigned long  _RTLENTRY   _lrotr(unsigned long __val, int __count);
  222.  
  223. void   _FAR   *_RTLENTRY   _EXPFUNC lsearch(const void _FAR *__key, void _FAR *__base,
  224.                                  size_t _FAR *__num, size_t __width,
  225.                            int _RTLENTRY(*_EXPFUNC __fcmp)(const void _FAR *, const void _FAR *));
  226. char _FAR     *_RTLENTRYF  _EXPFUNC ltoa(long __value, char _FAR *__string, int __radix);
  227. void           _RTLENTRY   _EXPFUNC _makepath( char _FAR *__path,
  228.                                  const char _FAR *__drive,
  229.                                  const char _FAR *__dir,
  230.                                  const char _FAR *__name,
  231.                                  const char _FAR *__ext );
  232. int            _RTLENTRY   _EXPFUNC putenv(const char _FAR *__name);
  233.  
  234. unsigned       _RTLENTRY   _rotl(unsigned __value, int __count);
  235. unsigned       _RTLENTRY   _rotr(unsigned __value, int __count);
  236.  
  237. unsigned       _RTLENTRY   __rotl__(unsigned __value, int __count);     /* intrinsic */
  238. unsigned       _RTLENTRY   __rotr__(unsigned __value, int __count);     /* intrinsic */
  239.  
  240. void           _RTLENTRY   _searchenv(const char _FAR *__file,
  241.                                  const char _FAR *__varname,
  242.                                  char _FAR *__pathname);
  243. void           _RTLENTRY   _searchstr(const char _FAR *__file,
  244.                                  const char _FAR *__ipath,
  245.                                  char _FAR *__pathname);
  246. void           _RTLENTRY   _EXPFUNC _splitpath( const char _FAR *__path,
  247.                                  char _FAR *__drive,
  248.                                  char _FAR *__dir,
  249.                                  char _FAR *__name,
  250.                                  char _FAR *__ext );
  251. void           _RTLENTRY   _EXPFUNC swab(char _FAR *__from, char _FAR *__to, int __nbytes);
  252. char _FAR     *_RTLENTRYF  _EXPFUNC ultoa(unsigned long __value, char _FAR *__string,
  253.                                  int __radix);
  254.  
  255. #ifdef __cplusplus
  256. }
  257. #endif
  258.  
  259. #ifdef __BCOPT__
  260. #define  _rotl(__value, __count)  __rotl__(__value, __count)
  261. #define  _rotr(__value, __count)  __rotr__(__value, __count)
  262. #endif
  263.  
  264.  
  265. #if !defined(__STDC__)  /* NON-ANSI */
  266.  
  267. #if defined( _RTLDLL )
  268.  
  269. #ifdef __cplusplus
  270. extern "C" {
  271. #endif
  272. int far * far _RTLENTRY __getErrno(void);
  273. int far * far _RTLENTRY __getDOSErrno(void);
  274. #ifdef __cplusplus
  275. }
  276. #endif
  277.  
  278.  
  279. #define errno (*__getErrno())
  280. #define _doserrno (*__getDOSErrno())
  281.  
  282. #else
  283.  
  284. extern  int   _RTLENTRY _doserrno;
  285. extern  int   _RTLENTRY errno;
  286.  
  287. #endif
  288.  
  289. #endif  /* !__STDC__ */
  290.  
  291. #ifdef __cplusplus
  292. inline int _RTLENTRY     random(int __num)
  293.                         { return(int)(((long)rand()*__num)/(RAND_MAX+1)); }
  294. #else /* __cplusplus */
  295. #define random(num)(int)(((long)rand()*(num))/(RAND_MAX+1))
  296. #endif
  297.  
  298.  
  299. #else  /* defined __FLAT__ */
  300.  
  301.  
  302. #ifdef __cplusplus
  303. extern "C" {
  304. #endif
  305.  
  306. void        _RTLENTRY _EXPFUNC abort(void);
  307.  
  308. #if !defined(__ABS_DEFINED)
  309. #define __ABS_DEFINED
  310.  
  311. int         _RTLENTRY __abs__(int);
  312. #ifdef __cplusplus
  313. inline int _RTLENTRY  abs(int __x) { return __abs__(__x); }
  314. #else
  315. int         _RTLENTRYF _EXPFUNC abs(int __x);
  316. #  define abs(x)   __abs__(x)
  317. #endif
  318.  
  319. #endif /* __ABS_DEFINED */
  320.  
  321. int         _RTLENTRY   _EXPFUNC atexit(void (_USERENTRY * __func)(void));
  322. double      _RTLENTRY   _EXPFUNC atof(const char * __s);
  323. int         _RTLENTRYF  _EXPFUNC atoi(const char * __s);
  324. long        _RTLENTRYF  _EXPFUNC atol(const char * __s);
  325. void *      _RTLENTRYF  _EXPFUNC bsearch(const void * __key, const void * __base,
  326.                            size_t __nelem, size_t __width,
  327.                            int (_USERENTRY *fcmp)(const void *,
  328.                            const void *));
  329. void *      _RTLENTRY _EXPFUNC   calloc(size_t __nitems, size_t __size);
  330. div_t       _RTLENTRY _EXPFUNC   div(int __numer, int __denom);
  331. void        _RTLENTRY _EXPFUNC   exit(int __status);
  332. void        _RTLENTRY _EXPFUNC   free(void * __block);
  333. char *      _RTLENTRYF _EXPFUNC  getenv(const char * __name);
  334. long        _RTLENTRY _EXPFUNC   labs(long __x);
  335. ldiv_t      _RTLENTRY _EXPFUNC   ldiv(long __numer, long __denom);
  336. void *      _RTLENTRY _EXPFUNC   malloc(size_t __size);
  337. int         _RTLENTRY _EXPFUNC   mblen(const char * __s, size_t __n);
  338. size_t      _RTLENTRY _EXPFUNC   mbstowcs(wchar_t *__pwcs, const char * __s,
  339.                            size_t __n);
  340. int         _RTLENTRY _EXPFUNC   mbtowc(wchar_t *__pwc, const char * __s, size_t __n);
  341. void        _RTLENTRYF _EXPFUNC  qsort(void * __base, size_t __nelem, size_t __width,
  342.                            int (_USERENTRY *__fcmp)(const void *, const void *));
  343. int         _RTLENTRY _EXPFUNC   rand(void);
  344. void *      _RTLENTRY _EXPFUNC   realloc(void * __block, size_t __size);
  345. void        _RTLENTRY _EXPFUNC   srand(unsigned __seed);
  346. double      _RTLENTRY _EXPFUNC   strtod(const char * __s, char * *__endptr);
  347. long        _RTLENTRY _EXPFUNC   strtol(const char * __s, char * *__endptr,
  348.                            int __radix);
  349. long double _RTLENTRY _EXPFUNC   _strtold(const char * __s, char * *__endptr);
  350. unsigned long _RTLENTRY _EXPFUNC strtoul(const char * __s, char * *__endptr,
  351.                            int __radix);
  352. int         _RTLENTRY _EXPFUNC   system(const char * __command);
  353. size_t      _RTLENTRY _EXPFUNC   wcstombs(char * __s, const wchar_t *__pwcs,
  354.                            size_t __n);
  355. int         _RTLENTRY _EXPFUNC   wctomb(char * __s, wchar_t __wc);
  356.  
  357. #ifdef __cplusplus
  358. }
  359. #endif
  360.  
  361. /* Variables */
  362.  
  363. #ifdef _MT
  364.  
  365. #ifdef __cplusplus
  366. extern "C" {
  367. #endif
  368. extern  int * _RTLENTRY _EXPFUNC __errno(void);
  369. extern  int * _RTLENTRY _EXPFUNC __doserrno(void);
  370. #ifdef  __cplusplus
  371. }
  372. #endif
  373. #define errno (*__errno())
  374. #define _doserrno (*__doserrno())
  375.  
  376. #else   /* MT */
  377.  
  378. extern  int   _RTLENTRY _EXPDATA errno;
  379. extern  int   _RTLENTRY _EXPDATA _doserrno;
  380.  
  381. #endif  /* MT */
  382.  
  383. #if !defined(__STDC__)
  384.  
  385. /* Values for _osmode */
  386.  
  387. #define _WIN_MODE    2  /* Windows 16- or 32-bit */
  388. #define _OS2_20_MODE 3  /* OS/2 32-bit */
  389. #define _DOSX32_MODE 4  /* DOS 32-bit */
  390.  
  391. #define environ  _environ
  392.  
  393. #endif /* __STDC__ */
  394.  
  395. extern  char          **_RTLENTRY _EXPDATA _environ;
  396. extern  int             _RTLENTRY _EXPDATA _fileinfo;
  397. extern  int             _RTLENTRY          _fmode;
  398. extern  unsigned char   _RTLENTRY _EXPDATA _osmajor;
  399. extern  unsigned char   _RTLENTRY _EXPDATA _osminor;
  400. extern  unsigned char   _RTLENTRY _EXPDATA _osmode;
  401. extern  unsigned int    _RTLENTRY _EXPDATA _osversion;
  402.  
  403. #if !defined(__STDC__)
  404. #ifdef __cplusplus
  405.    inline int _RTLENTRY atoi(const char *__s) { return (int)atol(__s); }
  406. #else
  407. #  define atoi(s)((int) atol(s))
  408. #endif
  409. #endif
  410.  
  411. #if !__STDC__
  412. #define sys_nerr     _sys_nerr
  413. #define sys_errlist  _sys_errlist
  414. #endif
  415.  
  416. extern  char          * _RTLENTRY _EXPDATA _sys_errlist[];
  417. extern  int             _RTLENTRY _EXPDATA _sys_nerr;
  418.  
  419.  
  420. /* Constants for MSC pathname functions */
  421.  
  422. #if defined(__OS2__) || defined(__WIN32__)
  423. #define _MAX_PATH       260
  424. #define _MAX_DRIVE      3
  425. #define _MAX_DIR        256
  426. #define _MAX_FNAME      256
  427. #define _MAX_EXT        256
  428. #else
  429. #define _MAX_PATH       80
  430. #define _MAX_DRIVE      3
  431. #define _MAX_DIR        66
  432. #define _MAX_FNAME      9
  433. #define _MAX_EXT        5
  434. #endif
  435.  
  436. #ifdef __cplusplus
  437. extern "C" {
  438. #endif
  439.  
  440. long double   _RTLENTRY  _EXPFUNC _atold(const char * __s);
  441.  
  442. unsigned char _RTLENTRY  _EXPFUNC _crotl(unsigned char __value, int __count);
  443. unsigned char _RTLENTRY  _EXPFUNC _crotr(unsigned char __value, int __count);
  444.  
  445. char *        _RTLENTRY  _EXPFUNC ecvt(double __value, int __ndig, int * __dec,
  446.                                        int * __sign);
  447. void          _RTLENTRY  _EXPFUNC _exit(int __status);
  448. char *        _RTLENTRY  _EXPFUNC fcvt(double __value, int __ndig, int * __dec,
  449.                                        int * __sign);
  450. char *        _RTLENTRYF _EXPFUNC _fullpath(char * __buf, const char * __path,
  451.                                             size_t __maxlen);
  452. char *        _RTLENTRY  _EXPFUNC gcvt(double __value, int __ndec,
  453.                                        char * __buf);
  454. char *        _RTLENTRYF _EXPFUNC itoa(int __value, char * __string,
  455.                                        int __radix);
  456. void *        _RTLENTRY  _EXPFUNC lfind(const void * __key,
  457.                                         const void * __base,
  458.                                         size_t *__num, size_t __width,
  459.                                         int (_USERENTRY *fcmp)(const void *, const void *));
  460.  
  461. long          _RTLENTRY  _EXPFUNC _lrand(void);
  462. unsigned long _RTLENTRY  _EXPFUNC _lrotl(unsigned long __val, int __count);
  463. unsigned long _RTLENTRY  _EXPFUNC _lrotr(unsigned long __val, int __count);
  464.  
  465. void *        _RTLENTRY  _EXPFUNC lsearch(const void * __key, void * __base,
  466.                                           size_t *__num, size_t __width,
  467.                                           int (_USERENTRY *fcmp)(const void *, const void *));
  468.  
  469. char *        _RTLENTRYF _EXPFUNC ltoa(long __value, char * __string,
  470.                                        int __radix);
  471. void          _RTLENTRY  _EXPFUNC _makepath(char * __path,
  472.                                             const char * __drive,
  473.                                             const char * __dir,
  474.                                             const char * __name,
  475.                                             const char * __ext );
  476. int           _RTLENTRY  _EXPFUNC putenv(const char * __name);
  477.  
  478. unsigned short _RTLENTRY _EXPFUNC _rotl(unsigned short __value, int __count);
  479. unsigned short _RTLENTRY _EXPFUNC _rotr(unsigned short __value, int __count);
  480.  
  481. void          _RTLENTRY  _EXPFUNC _searchenv(const char * __file,
  482.                                              const char * __varname,
  483.                                              char *__pathname);
  484. void          _RTLENTRY  _EXPFUNC _searchstr(const char * __file,
  485.                                              const char * __ipath,
  486.                                              char *__pathname);
  487. void          _RTLENTRY  _EXPFUNC _splitpath(const char * __path,
  488.                                              char * __drive,
  489.                                              char * __dir,
  490.                                              char * __name,
  491.                                              char * __ext );
  492. void          _RTLENTRY  _EXPFUNC swab(char * __from, char * __to, int __nbytes);
  493. char *        _RTLENTRYF _EXPFUNC ultoa(unsigned long __value, char * __string,
  494.                                         int __radix);
  495.  
  496. /* Intrinsic functions */
  497.  
  498. unsigned char _RTLENTRY  ___crotl__(unsigned char __value, int __count);
  499. unsigned char _RTLENTRY  ___crotr__(unsigned char __value, int __count);
  500. unsigned long _RTLENTRY  ___lrotl__(unsigned long __val, int __count);
  501. unsigned long _RTLENTRY  ___lrotr__(unsigned long __val, int __count);
  502. unsigned short _RTLENTRY ___rotl__ (unsigned short __value, int __count);
  503. unsigned short _RTLENTRY ___rotr__ (unsigned short __value, int __count);
  504.  
  505. #ifdef __cplusplus
  506. }
  507. #endif
  508.  
  509. #if !defined(__STDC__)
  510.  
  511. #if defined(__cplusplus)
  512. inline int  _RTLENTRY random(int __num)
  513.                        { return __num ? (int)(_lrand()%(__num)) : 0; }
  514. #else /* __cplusplus */
  515. #define random(num) (num ? (int)(_lrand()%(num)) : 0)
  516. #endif  /* __cplusplus  */
  517.  
  518. #endif /* __STDC__ */
  519.  
  520. #endif  /* __FLAT__ */
  521.  
  522. #if defined(__cplusplus)
  523. extern "C" long _RTLENTRY _EXPFUNC time(long _FAR *);
  524. #endif
  525.  
  526. #if !defined(__STDC__)
  527.  
  528. #if defined(__cplusplus)
  529.  
  530. /* Need prototype of time() for C++ randomize() */
  531. inline void _RTLENTRY randomize(void) { srand((unsigned) time(NULL)); }
  532.  
  533. #if !defined( __MINMAX_DEFINED) && defined(__cplusplus)
  534. #define __MINMAX_DEFINED
  535. template <class T> inline const T _FAR &min( const T _FAR &t1, const T _FAR &t2 )
  536. {
  537.     if  (t1 < t2)
  538.         return t1;
  539.     else
  540.         return t2;
  541. }
  542.  
  543. template <class T> inline const T _FAR &max( const T _FAR &t1, const T _FAR &t2 )
  544. {
  545.     if  (t1 > t2)
  546.         return t1;
  547.     else
  548.         return t2;
  549. }
  550. #endif
  551.  
  552. #else /* __cplusplus */
  553.  
  554. #define randomize() srand((unsigned)time(NULL))
  555. #define max(a,b)    (((a) > (b)) ? (a) : (b))
  556. #define min(a,b)    (((a) < (b)) ? (a) : (b))
  557. #endif
  558.  
  559. #define  MB_CUR_MAX              1
  560.  
  561. #endif /* __STDC__ */
  562.  
  563. #if defined(__MSC)
  564. #define _itoa(__value, __string, __radix) itoa(__value, __string, __radix)
  565. #endif
  566.  
  567.  
  568. #if !defined(RC_INVOKED)
  569.  
  570. #pragma option -a.  /* restore default packing */
  571.  
  572. #if defined(__STDC__)
  573. #pragma warn .nak
  574. #endif
  575.  
  576. #endif  /* !RC_INVOKED */
  577.  
  578.  
  579. #endif  /* __STDLIB_H */
  580.  
  581.