gpt4 book ai didi

c++ - 在公共(public)目标文件中分隔调用者

转载 作者:行者123 更新时间:2023-11-30 17:25:31 24 4
gpt4 key购买 nike

我正在开发一个由解码器和编码器组成的应用程序,层次结构如下:

debug_info.h 包含在编码器和解码器中。编译后,可以根据用例执行编码器或解码器。我想在 debug_info.h 中分离调用者,这意味着在运行时我可以分离编码器是调用它还是解码器。

我的方法:

我在解码器和编码器 make 文件中启用了单独的标志(dec_enable 和 enc_enable)。

我检查了它们 debug_info.h

#ifdef dec_enable
//---Do Something--
#else
//--Do Something else

这不起作用。实际上不应该这样,因为只有在运行时我们才会知道哪个正在执行。

您能告诉我如何在运行时区分这两者吗?

最佳答案

除非您实际上正在制作调试器,否则您的程序设计看起来很奇怪。为什么程序中的任何算法都依赖于某种调试文件,而该文件可能不会包含在生产代码中?这只是一种奇怪的、紧密的耦合,不应该存在。

您应该设计程序,以便编码器/解码器算法除了指定的任务之外什么都不知道。然后,您的调试文件包含编码器/解码器。

如果您需要更改在运行时调用的函数,只需编写一个简单的 if-else 语句即可。或者,如果您出于某种原因需要代码更加通用,则可以使用函数指针,即使在这种情况下似乎没有明显的需要。

关于c++ - 在公共(public)目标文件中分隔调用者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27058414/

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