如果在其他人提供的库的标头中附加更多枚举是否有任何潜在问题?

问题描述 投票:0回答:1

如果在其他人提供的共享库的标头中附加更多枚举,我应该注意什么潜在问题吗?上述库的代码无法通过我看到它们进行修改和重新编译:(.

我认为在代码编译时,枚举值将被

char
int
等替换。如果附加值没有溢出底层类型,我认为它不应该影响所述libaray的功能。如果我错了,请告诉我。

假设有一个名为 SeatPosition 的枚举,假设原始枚举是这样的:

typedef enum POSITON_INFO{
FIRST_ROW_LEFT,
FIRST_ROW_RIGHT,
SECOND_ROW_LEFT,
SECOND_ROW_RIGHT,
}POSITON_INFO;

现在,我想向 extern 库提供的函数添加更多值。就像这样:

typedef enum POSITON_INFO{
FIRST_ROW_LEFT,
FIRST_ROW_RIGHT,
SECOND_ROW_LEFT,
SECOND_ROW_RIGHT,
THIRD_ROW_LEFT,
THIRD_ROW_RIGHT,
}POSITON_INFO;
c++ enums c++14 shared-libraries
1个回答
0
投票

正如 molbdnilo 在评论中指出的那样:不,这是不可能的。它违反了单一定义规则。它还可能导致其他问题,例如在编译的代码中使用 switch 语句。虽然此示例只有几个枚举器,但将数字增加到超过 255 可能会影响基础类型。

© www.soinside.com 2019 - 2024. All rights reserved.