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

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语言函数那些事(21)


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

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

 

1.     setfillpatterne函数

setfillpatterne函数的功能是选择用户定义的填充模式,其用法为:void far setfillpattern(char far *upattern, int color);程序实例如下:

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

int main(void)

{

    int gdriver = DETECT, gmode, errorcode;

   int maxx, maxy;

   char pattern[8] = {0x00, 0x70, 0x20, 0x27, 0x24, 0x24, 0x07, 0x00};

   initgraph(&gdriver, &gmode, "");

   errorcode = graphresult();

   if (errorcode != grOk) 

   {

      printf("Graphics error: %s\n", grapherrormsg(errorcode));

      printf("Press any key to halt:");

      getch();

      exit(1);

   }

   maxx = getmaxx();

   maxy = getmaxy();

   setcolor(getmaxcolor());

   setfillpattern(pattern, getmaxcolor());

   bar(0, 0, maxx, maxy);

   getch();

   closegraph();

   return 0;

}

 2.   setftime函数

setftime函数的功能是设置文件日期和时间,其用法为int setftime(int handle, struct ftime *ftimep);程序实例代码如下:

#include <stdio.h>

#include <process.h>

#include <fcntl.h>

#include <io.h>

int main(void)

{

   struct ftime filet;

   FILE *fp;

   if ((fp = fopen("TEST.$$$", "w")) == NULL)

   {

      perror("Error:");

      exit(1);

   }

   fprintf(fp, "testing...\n");

   filet.ft_tsec = 1;

   filet.ft_min = 1;

   filet.ft_hour = 1;

   filet.ft_day = 1;

   filet.ft_month = 1;

   filet.ft_year = 21;

   system("dir TEST.$$$");

   setftime(fileno(fp), &filet);

   fclose(fp);

   system("dir TEST.$$$");

   unlink("TEST.$$$");

   return 0;

}

3.    setgraphbufsize函数

setgraphbufsize函数的功能是改变内部图形缓冲区的大小, 其用法为:unsigned far setgraphbufsize(unsigned bufsize);程序实例代码如下:

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

#define BUFSIZE 1000 /* internal graphics buffer size */

int main(void)

{

   int gdriver = DETECT, gmode, errorcode;

   int x, y, oldsize;

   char msg[80];

   oldsize = setgraphbufsize(BUFSIZE);

   initgraph(&gdriver, &gmode, "");

   errorcode = graphresult();

   if (errorcode != grOk)

   {

      printf("Graphics error: %s\n", grapherrormsg(errorcode));

      printf("Press any key to halt:");

      getch();

      exit(1);

   }

   x = getmaxx() / 2;

   y = getmaxy() / 2;

   sprintf(msg, "Graphics buffer size: %d", BUFSIZE);

   settextjustify(CENTER_TEXT, CENTER_TEXT);

   outtextxy(x, y, msg);

   sprintf(msg, "Old graphics buffer size: %d", oldsize);

   outtextxy(x, y+textheight("W"), msg);

   getch();

   closegraph();

   return 0;

}4.     setjmp函数

setjmp函数的功能是非局部转移,其用法为:int setjmp(jmp_buf env);程序实例代码如下:

#include <stdio.h>
#include <process.h>
#include <setjmp.h>
void subroutine(void);
jmp_buf jumper;
int main(void)
{
   int value;
   value = setjmp(jumper);
   if (value != 0)
   {
      printf("Longjmp with value %d\n", value);
      exit(value);
   }
   printf("About to call subroutine ... \n");
   subroutine();
   return 0;
}
void subroutine(void)
{
   longjmp(jumper,1);