当前位置: 首页 > 图文教程 > 开发语言 > C/C++ > C/C++:小编谈C语言函数那些事(9)

C/C++
ActiveX控件中多控制的设计与实现
向CCmdTarget的派生类添加一个接口的实现
多线程安全的变量模板
利用硬件信息实现共享软件的安全注册
托管C++程序开发—Win表单文档程序设计(下)
在ATL中实现窗口
基于Visual C++ 的自动化客户端的实现
ATL接口映射宏详解
托管C++程序开发—Win表单文档程序设计(中)
使用Visual C++开发SOAP客户端应用
Visual C#的SQL Server编程
VC# .Net中浏览Crystal Report
关于GC:Dotnet中Dispose的设计模式
Visual C++ 优化概述
Visual C++.NET GDI+编程基础
.NET 中的断言和跟踪
每个开发人员现在应该下载的十种必备工具
代码最优化.NET中的内存管理
在VC++下对文件属性的获取与更改
高手必看:C、C++程序的优化之路

C/C++:小编谈C语言函数那些事(9)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 60 ::
收藏到网摘: n/a

C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。

1.     harderr函数

harderr函数的功能是建立一个硬件错误处理程序,其用法是:void harderr(int (*fptr)());程序例子如下:

#include <stdio.h>

#include <conio.h>

#include <dos.h>

#define IGNORE  0

#define RETRY   1

#define ABORT   2

int buf[500];

static char *err_msg[] = {

    "write protect",

    "unknown unit",

    "drive not ready",

    "unknown command",

    "data error (CRC)",

    "bad request",

    "seek error",

    "unknown media type",

    "sector not found",

    "printer out of paper",

    "write fault",

    "read fault",

    "general failure",

    "reserved",

    "reserved",

    "invalid disk change"

};

error_win(char *msg)

{

   int retval;

   cputs(msg);

   while(1)

   {

       retval= getch();

       if (retval == 'a' || retval == 'A')

       {

    retval = ABORT;

    break;

       }

       if (retval == 'r' || retval == 'R')

       {

    retval = RETRY;

    break;

       }

       if (retval == 'i' || retval == 'I')

       {

           retval = IGNORE;

           break;

       }

   }

   return(retval);

}

#pragma warn -par

int handler(int errval,int ax,int bp,int si)

{

   static char msg[80];

   unsigned di;

   int drive;

   int errorno;

   di= _DI;

   if (ax < 0)

   {

      error_win("Device error");

      hardretn(ABORT);

   }

   drive = ax & 0x00FF;

   errorno = di & 0x00FF;

   sprintf(msg, "Error: %s on drive %c\r\nA)bort, R)etry, I)gnore: ",

    err_msg[errorno], 'A' + drive);

   hardresume(error_win(msg));

   return ABORT;

}

#pragma warn +par

int main(void)

{

   harderr(handler);

   clrscr();

   printf("Make sure there is no disk in drive A:\n");

   printf("Press any key ....\n");

   getch();

   printf("Trying to access drive A:\n");

   printf("fopen returned %p\n",fopen("A:temp.dat", "w"));

   return 0;

}

2.      highvideo函数

highvideo函数的功能是选择高亮度文本字符,其用法是:void highvideo(void); 程序例子如下:

#include <conio.h>

int main(void)

{

   clrscr();

   lowvideo();

   cprintf("Low Intensity text\r\n");

   highvideo();

   gotoxy(1,2);

   cprintf("High Intensity Text\r\n");

   return 0;

}

3.      hypot函数

hypot函数的功能是计算直角三角形的斜边长,其用法是:double hypot(double x, double y);程序例子如下:

#include <stdio.h>

#include <math.h>

int main(void)

{

   double result;

   double x = 3.0;

   double y = 4.0;

   result = hypot(x, y);

   printf("The hypotenuse is: %lf\n", result);

   return 0;

}