gpt4 book ai didi

c - 我应该如何组织这个C项目

转载 作者:太空宇宙 更新时间:2023-11-04 07:33:01 24 4
gpt4 key购买 nike

我正在用 C 语言做这个编程作业。但我对如何组织它感到困惑。

所以,情况是这样的。我有两个树实现并在两个单独的头文件中声明它们的结构/包含/函数原型(prototype)等。然后我有两个实现的两个c源代码。现在问题来了。我有一个用于树的 ADT 的测试 c 文件(只有一个用于运行测试的主要函数)。因为这两个实现将使用相同的测试。如何避免制作同一个 main.c 文件的两个副本?当我包含 tree implementation1 的头文件时,我可以执行 gcc Tree_implementation1.c main.c。但是要执行 implementation2,我必须返回主源文件并手动将 include 更改为 tree implementation2,然后我可以使用相同的编译命令。我该如何解决这个问题,以便仅使用一个 main.c 在两个实现之间切换?

最佳答案

使用预处理器和一个可以在命令行上设置的常量:

在你的 main.c 中:

#ifdef TREE_IMPL1
#include "TreeImplementation1.h"
#else
#include "TreeImplementation2.h"
#endif

// ...

int main(int argc, char **argv)
{
#ifdef TREE_IMPL1
// code for testing TreeImplementation1
#else
// code for testing TreeImplementation2
#endif
}

当你编译时,在命令行上传递或省略TREE_IMPL1,或者在你的IDE中设置它:

gcc -DTREE_IMPL1 main.c ...

关于c - 我应该如何组织这个C项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11745275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com