有两个C模块:A和B.它们彼此独立。
如果我想让它们尽可能独立,那么在它们之间交换数据的最佳方式是什么?
答案 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 ;;在函数内部,它意味着"这个函数是本地的,但是持久的"。
然后,您只能通过调用函数,将值传递给它们并从中获取返回值来在模块之间进行通信。