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给出了警告:
警告C4091:‘静态':当没有声明变量时,在'RetType’左侧忽略。
为什么它忽略了“静态”?
发布于 2019-11-03 19:08:28
正如其他人提到的,静态只能与变量(或函数)一起使用。基本上,“静态”关键字用于在进程内存的数据部分(而不是在堆栈上)声明变量。在您的示例中,您将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部分中。
发布于 2019-11-03 19:07:12
因为它是一个枚举定义,所以让它成为static是没有意义的。你可能打算这样做:
typedef enum
{
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,
} RetType;
...
static RetType ret = SET_SUCCESS;https://stackoverflow.com/questions/58683535
复制相似问题