c++primer plus学习笔记之while循环 类型别名 延时clock()

来源:互联网 发布:mac 中文字幕乱码 编辑:程序博客网 时间:2024/05/23 17:42

1:while循环是没有初始化和更新部分的for循环,它只有测试条件和循环条件

while (test-condition)

body

首先计算圆括号内的测试条件,如果该表达式为true,则执行循环体中的语句,直到测试条件为false为止。

2:编写延时程序

c++中有一个函数有助于完成这样的工作。这个函数名字为clock(),返回程序开始执行后所用的系统时间。此时,出现两个问题,首先,clock()函数返回的时间单位不一定是秒;其次,该函数的返回类型在某些系统上可能是long,在另一些系统上可能是unsigned long或其他类型。

头文件ctime提供了这些问题的解决方案

①首先,定义了一个符号常量--CLOCK_PER_SEC,该常量等于每秒钟包含的系统时间单位数,因此,将系统时间除以这个值可以得到秒数,或者将秒数乘以CLOCK_PER_SEC,可以得到以系统时间单位为单位的时间。

②其次,ctime将clock_t作为返回类型的别名,这意味着可以将变量声明为clock_t类型,编译器将把它转换为long,unsigned long或适合系统的其他类型。

下面程序使用了clock()函数和头文件ctime来创建延迟循环

//延时5秒#include <iostream>#include <ctime>//描述clock()函数,clock_t类型using namespace std;int main(){cout<<"Enter the delay time,in seconds: "<<endl;float secs;cin>>secs;//输入延时的秒数clock_t delay=secs*CLOCKS_PER_SEC;//延时以系统时间单位为单位的时间cout<<"starting\a\n";clock_t start=clock();while (clock()-start<=delay);cout<<"done\a\n";return 0;} 
输入:5

输出:starting等待5秒之后显示done
3:类型别名

c++为类型建立别名方式有两种。

一种是预处理器:#define aliasName typeName,这样预处理器在编译程序时,用typeName替换所有的aliasName,从而aliasName成为typeName的别名。

二种是使用c++(和c)的关键字typedef来创建别名:typedef typeName aliasName,typedef不会创建新的类型,而只是为已有的类型创建一个新名称。








0 0