3

我只是想知道 C++ 中是否允许这种类型的声明

  static nextUnassignedTableID = 0; 
  static nextUnassignedFieldID = TSFID_MINIMUM_USER_TSFID;

它不会抱怨 Solaris/AIX 上的任何问题。

但是,在 Red Hat Enterprise Linux 上,它抱怨

 TSIDConverter.cpp(637): error #303: explicit type is missing ("int" assumed)
 static nextUnassignedTableID = 0; 

 TSIDConverter.cpp(638): error #303: explicit type is missing ("int" assumed)
 static nextUnassignedFieldID = TSFID_MINIMUM_USER_TSFID;

在 Linux 上,我使用带有命令 icpc -m32 的 Intel 11.1 编译器。

我应该包含其他库以便编译器,还是不再允许这种声明风格?

4

2 回答 2

8

它几乎从未被允许。第一个 C++ 标准不允许 C“隐式 int”规则;C99 也摆脱了这条规则。但是规则很简单,修复代码也很简单:只要坚持int编译器抱怨的地方。乏味,也许,但直截了当。

于 2012-09-11T18:13:33.683 回答
1

Default int在 C++ 中是不允许的,您需要修复此代码并int为变量设置显式类型。

于 2012-09-11T18:12:30.330 回答