创建C接口

时间:2013-11-10 15:54:38

标签: c oop interface header

我只是偶尔在C中编程所以我想知道以下是否是一个好主意:我在linked_matrix.carray_matrix.c中有两个矩阵的实现,它们具有相同的公共方法,所以我创建了一个头文件matrix.h,其中包含以下内容:

#ifndef _MATRIX_H_
#define _MATRIX_H_

typedef matrix;

matrix* matrix_new(int num_rows, int num_cols);

...

#endif

然后,每个.c文件都会包含matrix的正确定义,例如(在array_matrix.c中):

typedef struct {
    int** rows;
    int num_rows;
    int num_cols;
} matrix;

...

然后我用适当的.c文件编译程序。我知道我永远不需要同时使用它们,因此命名空间冲突不是问题。

该方法按预期编译和工作;但是,我想知道这个解决方案是否有任何明显的问题,经验丰富的C程序员可以发现,以及是否有更好的方法来实现我正在寻找的功能,这是Java / C中的接口# :我可以针对一组导出的函数进行编程,我可以在不更改任何代码的情况下将函数的实现替换为另一个实现,只需要包含项目中包含的文件列表。

0 个答案:

没有答案