推荐几本好的C语言方面的书

Python014

推荐几本好的C语言方面的书,第1张

1.《The C Programming Language》(《C程序设计语言》) ¥30

(美)Brian W.Kernighan,Dennis M.Ritchie (K&R)著机械工业出版社

http://www.china-pub.com/computers/common/info.asp?id=14975

2.《C Primer Plus》(中文版)¥60

(美)Stephen Prata 著 人民邮电出版社

3.《C语言入门经典》 ¥55

(美)霍顿(Horton,I.)著

4.《Programming in C》(《C语言编程》)¥59

(美)Stephen Kochan 著 电子工业出版社

5.《Pointers On C》(《C指针》)

6.《Expert C Programming》(《C专家编程》)

7.《C Traps and Pitfalls》(《C缺陷和陷阱》)

第一本绝对是学习C语言必看的书,而且相对来说比较便宜,当然如果买英文版的就更好了(我在书店看的英文版是35RMB)

clock()函数

clock()是c/c++中的计时函数,而与其相关的数据类型是clock_t。在msdn中,查得对clock函数定义如下:

clock_t

clock(void)

这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的cpu时钟计时单元(clock

tick)数,在msdn中称之为挂钟时间(wal-clock);若挂钟时间不可取,则返回-1。其中clock_t是用来保存时间的数据类型,在time.h文件中,我们可以找到对它的定义:

#ifndef

_clock_t_defined

typedef

long

clock_t

#define

_clock_t_defined

#endif

很明显,clock_t是一个长整形数。在time.h文件中,还定义了一个常量clocks_per_sec,它用来表示一秒钟会有多少个时钟计时单元,其定义如下:

#define

clocks_per_sec

((clock_t)1000)

可以看到每过千分之一秒(1毫秒),调用clock()函数返回的值就加1。下面举个例子,你可以使用公式clock()/clocks_per_sec来计算一个进程自身的运行时间:

void

elapsed_time()

{

printf("elapsed

time:%u

secs.\n",clock()/clocks_per_sec)

}

当然,你也可以用clock函数来计算你的机器运行一个循环或者处理其它事件到底花了多少时间:

#include

#include

#include

int

main(void)

{

long

i

=

10000000l

clock_t

start,

finish

double

duration

/*

测量一个事件持续的时间*/

printf(

"time

to

do

%ld

empty

loops

is

",

i)

start

=

clock()

while(

i--

)

finish

=

clock()

duration

=

(double)(finish

-

start)

/

clocks_per_sec

printf(

"%f

seconds\n",

duration

)

system("pause")

}

在笔者的机器上,运行结果如下:

time

to

do

10000000

empty

loops

is

0.03000

seconds

上面我们看到时钟计时单元的长度为1毫秒,那么计时的精度也为1毫秒,那么我们可不可以通过改变clocks_per_sec的定义,通过把它定义的大一些,从而使计时精度更高呢?通过尝试,你会发现这样是不行的。在标准c/c++中,最小的计时单位是一毫秒。

time_t

time(

time_t

*timer

)

返回值是1970年到现在的秒数

用long型接就可以了

参数也是同样意义

long

time_s

=

0

time_s

=

time(

null

)

//

time_s就是1970年到现在的秒数

或者

long

*

time_s

=

null

time(time_s)

//

*time_s就是1970年到现在的秒数

要计算前后一段时间的话之前取一次time,之后取一次相减就知道用了多少秒了