合并具有相同名称函数的两个C++库

  • 本文关键字:两个 C++ 函数 合并 c++ lib
  • 更新时间 :
  • 英文 :


我有两个名为uart.h和spi.h 的库

它们都具有名称相同但实现不同的函数。

例如,在uart.h中,我们有带有uart实现的void SetValue()函数,而在spi.h中我们有相同的函数名称,但带有spi实现。

我想用预处理器指令(#ifdef#define…(将这两个库合并为一个库。雇主希望我使用这种方式进行合并。

我们想让main.c文件中的用户确定协议(uart或spi(,并根据main.c文件的用户定义编写库。

如果您有用通用名称定义函数的C++标头,那么它们应该更好地使用名称空间。那么你就有了UART::SetValue(),没有问题。

接下来的问题是:为什么UART不是一个带有方法的类?UART是一个对象,它在内存中有一个位置(在大多数arch中(,在一个系统中可以有多个UART。UART的SetValue()需要一个额外的参数吗?你的意思是?

一旦将两个函数分离,就可以将它们合并,并使用#ifdef构造从两个函数中选择一个作为默认函数。

最新更新