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

C/C++
2009年编程开发语言的使用率
C++对象模型笔记:dynamic binding
cstl -- c语言编写通用数据结构和常用算法库(模仿SGI STL)
子串匹配:不回溯算法
C++ Builder 访问 USB 口的方法
C++中二维数组的动态分配
数组和指针在编译的时候的区别
如何利用doxygen生成pdf文档
有关C++析构函数的异常(Exceptions in Destructors)
C++模板学习之函数对象之谓词
5月编程语言排行榜:D语言风采不再
一个C++类实现文件全盘搜索
C语言编程宝典之一 读书笔记
C语言嵌入式系统编程修炼(内存操作)
C++内存管理
带头结点的双循环链表
有关VA_LIST的用法
C++标准库简介(转)
一个栈类的实现(链栈)
C 引用与指针的比较

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


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

}