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

C/C++
C和C++的特点
pragma 预处理指令详解
C++ 中什么是内联函数
C/C++没有数组
C/C++返回内部静态成员的陷阱
学好C/C++的办法
C/C++中时间函数的介绍
c/c++混合编程
c/C++内存分配
[转]浅谈C语言学习与C++语言学习的关系
托管C++
windows进程中的内存结构
C++学习重点分析
浅析scanf()函数中%[]格式控制符
C/C++:一个跨平台的 C++ 内存泄漏检测器
C/C++:C/C++时间函数使用方法
C/C++:线程冲突你了解多少?
C/C++:小编浅谈函数宏应用优缺点
C/C++:小编谈C语言函数那些事(1)
C/C++:小编谈C语言函数那些事(2)

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


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

}