C++计时的几种方法总结及例程
程序中经常会用到计时,下面总结了常见的几种计时方法,包括clock()、time()、GetTickCount()、QueryFrequencyCount(),使用的方法大致一致,符合下面的规范。通过在代码开始和结束处分别获得某个计数值,计算(计数值差值/计数的频率)获得代码的执行时间。
start[......]
程序中经常会用到计时,下面总结了常见的几种计时方法,包括clock()、time()、GetTickCount()、QueryFrequencyCount(),使用的方法大致一致,符合下面的规范。通过在代码开始和结束处分别获得某个计数值,计算(计数值差值/计数的频率)获得代码的执行时间。
start[......]
主要有四种方式:临界区(CRITICAL_SECTION)、互斥对象(Mutex,Mutual Exclusion)、事件对象(Event)、信号量(Semaphore)。
其中临界区效率最高,但只能实现本进程内的线程同步。其它三个可以实现多个进程内的线程同步。信号量功能最强大可实现线程互斥也可以用[……]
基本的有32个保留关键字(Reserved Keywords),后续的C99和C11标准又增添了一些关键字。
char | short | int | unsigned |
long | float | double | struct |
union | void | enum | signed |
const | volatile | typedef | auto |
register | static | extern | break |
case | continue | default | do |
else | for | goto | if |
return | switch | while | sizeof |
注意: sizeof是关键字,而不是函数或者宏
_Bool | _Complex | _Imaginary | inline | restrict |
_Bool与C++中的bool类型相同,值为0或1,定义在<stdbool.h>中
_Complex和_Imaginary用于定义复数类型。
inline与C++中的inline相同,内联支持。
restrict用于修饰指针。
_Alignas | _Alignof | _Atomic | _Generic |
_Noreturn | _Static_assert | _Thread_local |
主要来源:维基百科“C语言”
[……]