C语言基本数据类型及其扩展和可移植性问题(6)

__BEGIN_DECLS
#if __WORDSIZE == 64
/* 64位平台 */
/* 我们要使用ldiv_t来定义uintmax_t  */
typedef struct
  {
    long int quot;  /* 商  */
    long int rem;  /* 余数  */
  } imaxdiv_t;
#else  /*  32位平台 */
/* 我们要使用lldiv_t来定义uintmax_t  */
typedef struct
  {
    long long int quot;  /* 商  */
    long long int rem;  /* 余数  */
  } imaxdiv_t;
#endif
/* 计算N的绝对值  */
extern intmax_t imaxabs (intmax_t __n) __THROW __attribute__ ((__const__));
/* 返回NUMER除以DENOM的商和余数,放在imaxdiv_t结构中 */
extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom)
      __THROW __attribute__ ((__const__));
/* 与strtol类似,但转换成intmax_t  */
extern intmax_t strtoimax (__const char *__restrict __nptr,
      char **__restrict __endptr, int __base) __THROW;
/* 与strtoul类似,但转换成uintmax_t  */
extern uintmax_t strtoumax (__const char *__restrict __nptr,
      char ** __restrict __endptr, int __base) __THROW;
/* 与wcstol类似,但转换成intmax_t  */
extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr,
      __gwchar_t **__restrict __endptr, int __base)
    __THROW;
/* 与wcstoul类似,但转换成uintmax_t  */
extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr,
      __gwchar_t ** __restrict __endptr, int __base)
    __THROW;
   
/* 下面是GNU的扩展:是上面4个标准转换函数的外部内联版本,有64位平台和32位平台之分 */
__END_DECLS
#endif /* inttypes.h */

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/6b6aaefc84e43b1774e208ee9ff10981.html