作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在处理一个庞大的代码库,我遇到了这个声明
static enum OPTION_FILE_NUM FileOption(const char *target);
现在我不确定 enum OPTION_FILE
返回类型在这里指示什么?我在整个代码库中搜索了 OPTION_FILE_NUM
类型,但我找不到任何东西,但代码在 Visual Studio 中编译得很好。现在,当我在 Mingw GCC 中使用相同的代码时,出现以下错误。
error: use of enum 'OPTION_FILE_NUM' without previous declaration
我的问题是上面的说法说明了什么?
最佳答案
作为非标准扩展的 Visual Studio 允许前向声明枚举(没有大小信息)。
所以您看到这里使用了该功能。它向前声明一个名称为 OPTION_FILE_NUM
的枚举,并表示该函数返回它。
由于扩展是非标准的,您的其他编译器会提示。
要么在使用之前注入(inject)正确的 decl,要么如果 C++11 注入(inject) enum OPTION_FILE_NUM:int;
如果我没记错的话,那是 msvc 隐式执行的操作。 (有趣的是,msvc 不支持大小枚举前向声明,而只支持大小不一的枚举,这与标准要求相反)。
关于c++ - 枚举关键字作为返回类型的存在表示什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29931272/
我是一名优秀的程序员,十分优秀!