• 设为首页
  • 加入收藏
  • 汇款方式
  • 留言反馈
  • 网站首页
  • 关于我们
  • 网站建设
  • 网站托管
  • 网站推广
  • 微信网站
  • 速达软件
  • 成功案例
  • 后续服务
  • 在线留言
  • 联系我们
快速服务导航
  • 网站建设
  • 网站推广
  • 网站托管
  • 财务软件
  • 客户服务
  • 经济型网站建设套餐
  • 基本型网站建设套餐
  • 标准型网站建设套餐
  • 品牌型网站建设套餐
临沂进销存软件
建站知识
您现在的位置: 首页 >> 建站知识

c语言中时间陷阱的实现-上海网站建设

添加时间:2013-1-3

  时间陷阱.它能是主程序的运行和对事件的处理异步进行.通过设置时间陷阱.可以在规定的时间间隔到达后自动执行某个子程序.子程序运行结束后又回到主程序的断点处继续执行.basic语言提供了有关时间陷阱的语句.可以直接调用.但C语言没有这样的功能,为了能实现上述功能,这里给出了几个子函数以帮助实现. 临沂网站建设
    #include<dos.h>
    #define Sizeprogram 375
    void interrupt (*oldtimer)();
    void interrupt newtimer();
    static struct SREGS seg;
    unsigned intsp,intss;
    unsigned myss,stack;
    unsigned vseg;
    int running=0;
    int m1,m2,m3=0;
    int (*sub_ptr)();
    void on_timer();
    void timer_on();
    void timer_off();
    void on_timer(t,pp);
    int t;
    int (*pp)();
    {
    sub_ptr=pp;
    m1=t;
    segread(&seg);
    stack=(Sizeprogram-(seg.ds-seg.cs))*16-300;
    myss=_SS;
    oldtimer=getvect(0x1c);
    }
    void timer_on()
    {
    m2=0;
    m3=1;
    setvect(0x1c,newtimer);
    }
    void timer_off()
    {
    m3=0;
    setvect(0x1c,oldtimer);
    }
    void interrupt newtimer()
    {
    (*oldtimer)();
    if(running==0)
    running=1;
    disable();
    intsp=_SP;
    intss=_SS;
    _SP=stack;
    _SS=myss;
    enable();
    if(m3==1){
    if(m2==m1*18){
    m2=0;
    (*sb_ptr)();
    }
    m2+=1;
    }
    disable();
    _SP=intsp;
    _SS=intss;
    enable();
    running=0;
    }
    }
    #include<dos.h>
    #define TRUE 1
    void ptr();
    main()
    {
    char ch;
    char *p:
    p=(char *)ptr;
    on_timer(t,p);
    while(TRUE){
    ch=getch();
    switch(ch){
    case ’’0’’: timer_off();break;
    case ’’1’’: timer_on();break;
    case ’’2’’: timer_off();brea;
    default: printf(’%c’,ch);
    }
    }
    }
    void ptr()
    {
    union REGS in,out;
    in.h.al=’’A’’;
    in.h.ah=14;
    int86(0x10,&in,&out);
    } 临沂网站建设


本文摘自:http://www.ly333.net/new_show.asp?id=781

浏览次数:2502


上一条:临沂网站建设:自助建站的利与弊
下一条:js中判断Object、Array、Function等引用类型对象是否相等
  • 返回首页
  • 关于我们
  • 汇款方式
  • 留言反馈
  • 联系我们
  • 临沂软件公司
版权所有 Copyright @ 2006 临沂三人行网络 All Rights reserved 鲁ICP备11032993号-1
联系地址:临沂市兰山区临西五路与北园路交汇处优卡空间B座509 临沂三人行网络科技公司 邮编:276000
咨询专线:0539-7322544     业务总监:13954495915
商务一部:0539-7322401 咨询QQ:858823118
商务二部:0539-7322402 咨询QQ:346917770
 商务三部:0539-7322403 咨询QQ:1737388890
监督电话:13954495915    EMAIL:w7169322@163.com
网站关键词: 临沂网站建设|临沂网站制作|临沂网络公司|临沂网站改版|临沂网站托管|临沂三人行网络  网站地图