使用C在模块之间共享数据的好方法

时间:2015-04-24 16:47:29

标签: c modularity

有两个C模块:A和B.它们彼此独立。

如果我想让它们尽可能独立,那么在它们之间交换数据的最佳方式是什么?

2 个答案:

答案 0 :(得分:0)

我会告诉你如何管理一个整数,这非常简单! ...... :)

以下是一个例子。我们有三个文件:a.c,b.c和b.h

文件a.c将管理一个全局和静态分配的整数(静态地将变量隐藏到其他C模块)由b.c模块公开,该模块公开管理该整数的函数。

文件b.h包含模块b.c公开的函数的声明。

文件a.c是:

#include "b.h"

int main(void)
{
    setdata(8);
    printf("%d\n",getdata());
    return 0;
}

文件b.c可能是:

#include "b.h"

static int data; /* Here static means data is hidden to other C modules */

int getdata(void)
{
    return data;
}

void setdata(int val)
{
    data=val;
}

文件b.h

#ifndef B_H__
#define B_H__

void setdata(int);
int getdata(void);

#endif

答案 1 :(得分:0)

在C中,您通过在" static"处声明持久变量来实现信息隐藏。在函数外部,这意味着只能从这个.c文件中看到&#34 ;;在函数内部,它意味着"这个函数是本地的,但是持久的"。

然后,您只能通过调用函数,将值传递给它们并从中获取返回值来在模块之间进行通信。