IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    通过extern和static实现c语言的封装

    Qiang发表于 2009-08-04 04:03:38
    love 0

    C语言并不是面向对象的程序设计语言,但是我们可以通过extern和static实现程序的封装和隐蔽。

    举个例子,我们在主函数中要使用一个栈,栈的实现代码在stack.c中,我们要主函数不能访问stack.c中的除压栈,出栈之外的所有变量和函数,那么我们就可以把这些不想被访问的变量或函数声明为static,这样主函数将无法访问。

    下面是代码例子:

    main.c文件:

    ?View Code C
    1
    2
    3
    4
    5
    6
    7
    8
    
    int main(void)
    {
    extern void push(char);
    extern char pop(void);
     
    ...
     
    }

    stack.c文件:

    ?View Code C
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    static char stack[512];
    static int top = -1;
    void push(char c)
    {
    stack[++top] = c;
    }
    char pop(void)
    {
    return stack[top--];
    }

    这样,就实现了栈内部变量的隐蔽和保护。



沪ICP备19023445号-2号
友情链接