【发布时间】:2010-11-28 21:46:08
【问题描述】:
我有一个包含一组结构的全局包含文件。在我的程序的某个地方,我有一个包含成员数组的类。此数组中的元素数量取决于特定结构中特定字段的大小。我想让它在结构字段的大小发生变化时自动更新数组大小。我已经能够使用以下表达式成功地做到这一点:
bool shadowChkBox[sizeof(FSCconfigType::WriteEn)*8*MAX_FSCS];
FSCconfigType 是结构类型,WriteEn 是字段之一。现在这有效,但仅在 ubuntu 上有效。在 RHEL 5 上,编译器将其声明为错误。我还有什么其他选择可以做到这一点?我正在使用 Qt。
【问题讨论】:
-
你在 RH 上遇到了什么错误?
-
我怀疑这与您使用的 GCC 版本有关,而不是与 Linux 的版本有关。
-
可以直接使用字段的类型,而不是通过字段引用吗?我猜不是(因为这是 sizeof 可能会改变的原因),但检查一下也无妨。
-
@steve 实际上这就是 sizeof 可能改变的原因
-
@yan bellavance,我同意您不应该要求您的用户升级 gcc。我只是想澄清这个问题。我认为代码应该可以编译,如果它是旧版本 gcc 中的错误,那么我认为您将遇到更丑陋的解决方法。
标签: c++ gcc data-structures ubuntu redhat