对于强大的C程序来说,这样做是好/正确的方法吗?
//File1 => Module1.h
static int Fun(int);
struct{
int (*pFn)(int)
}Interface;
Run Code Online (Sandbox Code Playgroud)
// File2 => Module1.c
static int Fun(int){
//do something
}
Interface* Init(void)
{
Interface *pInterface = malloc(sizeof(Interface));
pInterface->pFn = Fun;
return pInterface;
}
//File 3 => Module2.c
#include"Module1.h"
main()
{
Interface *pInterface1 = Init();
pInterface1->pFn(5);
}
Run Code Online (Sandbox Code Playgroud)
我的目的是让每个模块暴露一个接口......
问题:
我的意思是我们可以将C中的函数声明为const
void fun(int iVar) const;
int g_var = 1;
void fun(int iVar)
{
//do some thing
g_var = iVar;
}
Run Code Online (Sandbox Code Playgroud)