首页 > 解决方案 > 为什么忽略“静态”?

问题描述

 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”左侧被忽略。

为什么它忽略“静态”?

标签: c

解决方案


正如其他人提到的,静态只能与变量(或函数)一起使用。基本上“静态”关键字用于在进程内存的数据部分(而不是在堆栈上)声明变量。在您的情况下,您将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静态声明。在这里,retRetType.data 部分中的类型。


推荐阅读