小编use*_*540的帖子

C程序设计

对于强大的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)

我的目的是让每个模块暴露一个接口......

问题:

  1. 编写一个像上面这样的C代码来暴露一个接口是不是很好......
  2. 有哪些更好的方法可用于暴露界面?
  3. C编程(不是C++)的设计原则是否有任何参考?

c

7
推荐指数
1
解决办法
244
查看次数

C中是否有const函数?

我的意思是我们可以将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)

c const function

2
推荐指数
1
解决办法
488
查看次数

标签 统计

c ×2

const ×1

function ×1