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

C/C++
VC++ SMTP协议电子邮件传送剖析
Managed C++设计新邮件检查器
解决两个难懂的安全性问题
高级扫描技术及原理介绍
VC的另类数据库编程
Visual C++6.0 API函数操作技巧集
托盘编程全接触
在Visual C++中使用内联汇编
理解 Visual C++ Extensions for ADO
TCP/IP Winsock编程要点
VC打造自己特色的屏幕保护
Windows Sockets API实现网络异步通讯
程序界面多模式显示的实现
VC++6.0中控制运行唯一实例
WDM驱动程序设计之编译安装篇
VC编程中如何操作数据库中的图像字段
Windows 9X硬件中断设备驱动程序的开发
用控件聚合技术为FlexGrid增添PickList功能
用ATL和MFC来创建ActiveX控件
用VC进行COM编程所必须掌握的理论知识

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 63 ::
收藏到网摘: 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;

}