c - 为什么忽略“静态”?
问题描述
static enum RetType
{
SET_SUCCESS=0,
SET_ET_ERROR = -1,
SET_CBL_ERROR = -2,
SET_SEN_ERROR = -3,
SET_TAR_ERROR = -4,
SET_ENG_ERROR = -5,
SET_IO_ERROR = -6
};
enum RetType ret = SET_SUCCESS;
我在全局中声明了一个静态枚举。但 Visual Studio 给出警告:
警告 C4091:“静态”:在未声明任何变量时,在“RetType”左侧被忽略。
为什么它忽略“静态”?
解决方案
正如其他人提到的,静态只能与变量(或函数)一起使用。基本上“静态”关键字用于在进程内存的数据部分(而不是在堆栈上)声明变量。在您的情况下,您将RetType
全局定义为一种类型(而不是变量或函数)。因此,在您的情况下,您必须:
enum RetType
{
SET_SUCCESS=0,
SET_ET_ERROR = -1,
SET_CBL_ERROR = -2,
SET_SEN_ERROR = -3,
SET_TAR_ERROR = -4,
SET_ENG_ERROR = -5,
SET_IO_ERROR = -6
};
static enum RetType ret = SET_SUCCESS;
如果您想ret
静态声明。在这里,ret
是RetType
.data 部分中的类型。
推荐阅读
- javascript - 在图像滑块动画中获得平滑过渡
- c# - Hangfire 并不总是执行重试任务代码,有时会随机将它们标记为成功
- laravel - 从 Laravel 中的表中删除记录
- typescript - 打字稿:定义一个接口/类型,其中至少存在两个属性中的一个(两者都可能存在)
- php - laravel 将 json 保存到数据库 mysql
- java - JPA - 使用多个一对多关联更新实体的最佳方式
- c - 有没有在编译器的帮助下检查代码完整性的例子?
- spss - 无法解释 MATRIX 代码中的 SPSS 错误消息
- r - 将字符串拆分为R中的列
- twilio - 在调用 Twilio 中的转录消息期间运行 GET Webhook