1.1习题解答

1.在1.7节中,perror的参数是用ISO C的属性const定义的,而strerror的整形参数没有用此属性定义,为什么?

char  *strerror(int errnum);

void   perror(const char *msg);

2.若日历存放在带符号的32位整形数中,那么哪一年它将溢出?可用什么方法扩展溢出的浮点数,采用的策略是否与现有的应用相兼容?

UTC起始时间为 T=1970年1月1日 00:00:00,保存在系统的基本数据类time_t中,

带符号的32位所存储的时间t=2^31/(60*60*24*365)=68.0962598年,

所以溢出时间为T+t=1970+68=2038年。其溢出解决办法是将time_t数据类型定义为64位整形。

3.若进程时间存放在带符号的32位整形中,而且每秒100滴答,经过多少天后该数溢出?

day=2^31/(60*60*24*100)=248.551348天。

year=2^31/(60*60*24*365*100)=0.68096年


猜你喜欢

转载自blog.csdn.net/mortal5/article/details/80949423
今日推荐