我正在围绕一个c++库编写一个c包装器.
一种丑陋的方法是在c函数中使用int,并将包装函数中的主题转换为枚举类型.但这让c函数的用户对有效值一无所知,而且很难判断该值是否有效.
cpp头
namespace GPIO
{
enum class Directions
{
UNKNOWN,
OUT,
IN,
HARD_PWM
};
void setup(int channel, Directions direction, int initial = -1);
}
c包装头
int setup(int channel, int direction, int initial);
c包装器代码
int setup(int channel, int direction, int initial)
{
GPIO::setup(channel, static_cast<GPIO::Directions>(direction), initial);
return 0;
}
给c函数用户提供c++库中枚举类的好处的好方法是什么.因为它不是我的库,所以我不想更改库中的太多代码.
可以 Select 将枚举类提取到不同的文件中,并将其包含在原始头中.但我不知道如何正确定义它,所以我不必更改cpp库中的命名,仍然可以在c头中使用它.