gpt4 book ai didi

c - 如何在发布前删除私有(private)代码?

转载 作者:太空狗 更新时间:2023-10-29 15:32:38 25 4
gpt4 key购买 nike

我们有一个中型 C 代码库,它提供了一个 API 来使用我们的硬件产品。我们提供此 API 的源代码,以便客户可以将其编译到他们选择的任何环境中。重要的是来源清晰易读,因为很多人都这样做。我们不会以任何方式混淆它。

在我们的代码中,我们有许多仅用于内部测试的功能和部分,例如包装方法、低级别检查等。它们在任何方面都不是特别有趣或有害,但我们真的不想人们使用它们或对它们是什么感到困惑。尽管代码中有关于使用它们的警告,但这种情况之前已经发生过多次。

有没有什么工具或方法可以在发布源代码之前过滤掉这些部分?

现在我们使用带有注释的自定义方法,但是它很难解析和维护:

/* $if : INTERNAL : some comment */
debug_code();
/* $endif : INTERNAL */

我研究过使用 #ifdef 和预处理器,但似乎没有一种方法可以同时预处理特定的定义/宏而不是整个文件。我只想对特定 block 进行预处理(并因此删除),而不是代码中的所有定义。

编辑:从我下面的评论来看,我们想从已发布代码中删除的内容不应位于单独的文件中。像包装器一样,我们更喜欢将它们放在它们包装的函数旁边,以便于查找。其他时候,我们有关于内部实现的详细注释,我们希望在代码中供我们引用,但不希望其他人看到。

最佳答案

您应该将测试代码放在不同的文件中,最好使用适当的测试框架(如 Google Test 或 CUnit)。在那种情况下,删除测试只是删除一些文件的问题。我建议进行大量重构以隔离特定文件中的测试代码。

关于c - 如何在发布前删除私有(private)代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26124664/

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