在新的c程序中使用我的链表代码

时间:2017-06-25 05:15:16

标签: c

提前道歉,因为这似乎非常基本。

我有我的链表文件linkedList.c,我想将它包含在我的新c文件中,这样我就不必再次编码整个链表了。在Java中,我只需将它放在同一个文件夹中,然后我就可以在新文件中创建类LinkedList的对象,但是C似乎不会以这种方式工作。如果我尝试使用

#include "linkedLIst.c" 

在我的新文件的开头,然后我收到错误,因为main已经与我的布尔变量一起定义了两次。我究竟该如何解决这个问题?

2 个答案:

答案 0 :(得分:8)

你可以#include任何类型的(语法上有效的)C代码,但通常不应该(按照惯例)包含.c文件。详细了解C preprocessor

在实践中,您应该考虑制作一些library(将linked重复使用),并将您的共享代码分成.h头文件(包含定义)您将#include重新使用和实现.c文件。当然,不要在共享源代码中定义任何main。在某些简单的情况下和某些操作系统上,您可能还共享单个(或少数)object file(以及相关的头文件)。

您的共享标头会声明函数和extern变量(以及#define某些宏)。它还可以包含 static inline函数的定义(及其正文)。

您的共享实现将定义这些(和其他)函数和变量。

C编程需要很多约定 (您需要定义自己的约定)。 查看现有示例(来自free software的某些github源代码,或来自Linux发行版)。对于可重用的容器库,请查看glib(来自GTK)以及sglib(使用大量预处理器技巧)和许多其他库。

因为C没有namespaces的任何概念,所以具有一致的命名约定是明智的(出于可读性和其他原因),例如:通过一些公共前缀启动库的所有公共名称(函数和变量以及标题中的宏)。

答案 1 :(得分:1)

您需要定义一个头文件linkedList.h,并在那里声明您的链接列表函数原型,您可能已经在linkedList.c文件中定义了这些原型。然后,您可以使用'#include linkedList.h'重复使用代码。