分类: C/C++
2006-12-20 16:05:39
最近在看The art and science of C ,Eric S.Roberts,在此之前,我浏览过别人推荐的一本名书The program of C,但是我感觉这本书是那本书的续集,
在以前我只知道一些简单的c语言程序,就是什么有关计算排序什么的,但是就是无法把它跟现实生活中的图形程序连接起来,我感觉这就是个槛,反正我是这样,看完唐国强的c程序设计,也就是了解了些基本的语法,和基本的数据类型,要进一步深入我当时就不知道在干嘛好,因为我的迷茫导致我大三那年就没有继续看下去关于c语言编程的东西,转去看了看shell,
今天我看的接口让我感觉到了有点深入,让我明白了,程序的团体结构,下面我就说说我对接口的理解,其实说明白了,接口就是一个提供给给我们的头文件(当然这样说是为了更好的理解),打个比方,我们编写程序的时候通常要包含许多头文件,因为我门要用到很普通的函数,这些都是库函数,print(),getchar(), 等。但是有些功能无法达到自己的目的,自己就需要编写函数去实现,但是对于一类问题,就需要一类函数去实现,这样为了避免重复编写函数,就可以定义一个接口,在接口文件里面注释是占很大一部分的。
下面是接口的定义格式,
一个完整的接口 是由两个文件组成的,一个是name.h一个是name.c
name.h如下:
#ifndef _name_h(这里设计到一些条件编译的知识)
#define _name_h
任何所需的 #iinclude行
接口项
#endif
其中name是库的名字,第三行的#include是需要其他库时才用的(一定要注意这个地方)。
name.c如下
在这个文件里面就包含自己接口中的各个函数。
下面就是一个普通原始的接口文件产生随机数,它包含两个部分可以和上面我所说的对照起来理解,希望我写的这些能帮助在我这个阶段的兄弟门。
一
/*
*file :random.h
*this file contains a preliminary version of a library
*interface to produce pseudo_random numbers.
*/
#ifndef _random_h
#define _random_h
/*function :RandomoIteger
*usage::n=RandomInteger(low,high);
*this function returns a random interger in the range
*low to high , inclusive.
*/
Int RandomInteger(int low,int high);
#endif
二
/*
*File:random.c
*this file implements the preliminary random.h interface.
*
*/
#include
#include
#include”genlib.h”
#include”random.h”
/*
*function :RandomInterger
*this function first obtains a random interger in
*the range [0…RAND_MAX]by applying four steps:
*(1)Generate a real number between 0 and 1.
*(2)Scale it to the appropriate range size
*(3)Truncate the value to an interger
*(4)Translate it to the appropriate starting point.
int RandomInterger(int low,int high)
{
int k;
double d;
d=(double)rand()/((double)RAND_MAX+1);
k=(int)(d*(high-low+1));
return(low+k);
}
比如在去随机数的时候一般都会调用rand,但是有些时候一些问题不好解决,扔硬币正反用0或1表示,但是这只有两种可能性,再如扔骰子只有六种肯能性,所以说接口就是对一类问题的方案。我是个初学者,高手看了此文章可能觉得没有什么。对于初学者每进一步我感觉都很难。