C语言实现简单的定时器

本文实例为大家分享了C语言实现简单的定时器的具体代码,供大家参考,具体内容如下

1.代码分析

2.代码

#include <stdio.h>
#include <time.h>
#include <conio.h>

#ifndef CLOCKS_PER_SEC
#define CLOCKS_PER_SEC 1000
#endif

int main( void )
{
 clock_t start;
 long count = 1;
 start = clock();
 while(1)
 {
 if((clock() - start) == CLOCKS_PER_SEC)
 {
 printf("%ld\n",count++);
 start = clock();
 //break;
 }
 }
 getch();
}

3. 代码抽象出一个定时器函数 void timer(long time)

void timer(long time){

 clock_t start;
 long count = 1;
 start = clock();
 while(1)
 {
 if((clock() - start) != (time*CLOCKS_PER_SEC))
 {
 //时间没有到,啥也不做,空循环
 }else {
   //时间到了退出循环
   // printf("%s","hello");
   break;
  }

 }
}

完整代码

#include <stdio.h>
#include <time.h>
#include <conio.h>

#ifndef CLOCKS_PER_SEC
#define CLOCKS_PER_SEC 1000
#endif
/**
 * time 的单位为s
 */
void timer(long time){

 clock_t start;
 long count = 1;
 start = clock();
 while(1)
 {
 if((clock() - start) != (time*CLOCKS_PER_SEC))
 {
 //时间没有到,啥也不做,空循环
 }else {
   //时间到了退出循环
   // printf("%s","hello");
   break;
  }

 }
}
int main( void )
{

 for(int i=0;i<10;i++){
  timer(1);
  printf("%d\n",i);
 }
 getch();
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • c语言定时器示例分享

    在linux下开发,使用的是C语言.适用于需要定时的软件开发,以系统真实的时间来计算,它送出SIGALRM信号.每隔一秒定时一次 c语言定时器 复制代码 代码如下: #include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <termios.h>#include <errno.h>#include <ctype.h>#include <stdio.

  • vc6.0中c语言控制台程序中的定时技术(定时器)

    打开main.c编译运行,注意,打开main.c之后一定要将win32timer.c也加进工程中一起编译,下面有图.在开发单片机.ARM以及Linux系统的程序时,因为硬件定时中断的存在我们很方便构造出定时ISR,然而在VC6.0中,我们如何写一个定时程序呢?其实,就是timeSetEvent()这个函数的调用.这个函数的解释见MSDN.详细原理,请看我代码中的注释,我写得很详细了. main.c 复制代码 代码如下: //======================// main.c//===

  • C语言实现简单的定时器

    本文实例为大家分享了C语言实现简单的定时器的具体代码,供大家参考,具体内容如下 1.代码分析 2.代码 #include <stdio.h> #include <time.h> #include <conio.h> #ifndef CLOCKS_PER_SEC #define CLOCKS_PER_SEC 1000 #endif int main( void ) { clock_t start; long count = 1; start = clock(); whil

  • GO语言实现简单TCP服务的方法

    本文实例讲述了GO语言实现简单TCP服务的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import ( "net" "fmt" ) var (   maxRead = 1100     msgStop   = []byte("cmdStop")     msgStart  = []byte("cmdContinue")     ) func main() {       ho

  • Java语言实现简单FTP软件 FTP软件主界面(4)

    首先看一下FTP软件的整体代码框架,具体内容如下 1.首先介绍程序的主入口FTPMain.java,采用了一个漂亮的外观风格 package com.oyp.ftp; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.UIManager; import com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel; public class F

  • go语言实现简单http服务的方法

    本文实例讲述了go语言实现简单http服务的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import (     "flag"     "log"     "net/http"     "text/template" ) var addr = flag.String("addr", ":1718", "http service

  • GO语言实现简单的目录复制功能

    本文实例讲述了GO语言实现简单的目录复制功能.分享给大家供大家参考.具体实现方法如下: 创建一个独立的 goroutine 遍历文件,主进程负责写入数据.程序会复制空目录,也可以设置只复制以 ".xx" 结尾的文件. 严格来说这不是复制文件,而是写入新文件.因为这个程序是创建新文件,然后写入复制数据的.我们一般的 copy 命令是不会修改文件的 ctime(change time) 状态的. 代码如下: 复制代码 代码如下: // 一个简单的目录复制程序:一个独立的 goroutine

  • Go语言实现简单Web服务器的方法

    本文实例讲述了Go语言实现简单Web服务器的方法.分享给大家供大家参考.具体分析如下: 包 http 通过任何实现了 http.Handler 的值来响应 HTTP 请求: package http type Handler interface { ServeHTTP(w ResponseWriter, r *Request) } 在这个例子中,类型 Hello 实现了 http.Handler. 注意: 这个例子无法在基于 web 的指南用户界面运行.为了尝试编写 web 服务器,可能需要安装

  • Go语言实现简单留言板的方法

    本文实例讲述了Go语言实现简单留言板的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import (     // "fmt"     "io"     "log"     "net/http"     "text/template"     "time"     "database/sql"     "gi

  • 基于C语言实现简单的走迷宫游戏

    本文实例讲述了C语言实现简单的走迷宫游戏的方法,代码完整,便于读者理解. 学数据结构时用"栈"写的一个走迷宫程序,实际上用到双向队列,方便在运行完毕后输出经过的点. #include <cstdio> #include <deque> #include <windows.h> using namespace std; class node { public: int x,y; int lastOpt; }; deque<node> sta

  • Java语言实现简单FTP软件 FTP上传下载管理模块实现(11)

    本文为大家分享了FTP上传下载管理模块的实现方法,供大家参考,具体内容如下 1.上传本地文件或文件夹到远程FTP服务器端的功能. 当用户在本地文件列表中选择想要上传的文件后,点击上传按钮,将本机上指定的文件上传到FTP服务器当前展现的目录,下图为上传子模块流程图 选择好要上传的文件或文件夹,点击"上传"按钮,会触发com.oyp.ftp.panel.local.UploadAction类的actionPerformed(ActionEvent e)方法,其主要代码如下 /** * 上传

  • 常用Hash算法(C语言的简单实现)

    如下所示: #include "GeneralHashFunctions.h" unsigned int RSHash(char* str, unsigned int len) { unsigned int b = 378551; unsigned int a = 63689; unsigned int hash = 0; unsigned int i = 0; for(i = 0; i < len; str++, i++) { hash = hash * a + (*str);

随机推荐