+ -
当前位置:首页 → 问答吧 → 竟然编不过,求助

竟然编不过,求助

时间:2010-08-15

来源:互联网

#include <stdio.h>
int f()
{
        int i;
LABEL1:
        printf("LABEL1\n");
        switch(i)
        {
        case LABEL1:
                break;
        }
        return 1;
}
int main(int argc, char* argv[])
{
        //_3_DEC(3, MACRO)
        goto LABEL2;
LABEL2:
        return 0;
}

编译错误:
error C2065: 'LABEL1' : undeclared identifier
error C2051: case expression not constant

作者: zhulf753   发布时间: 2010-08-15

本帖最后由 daybreakcx 于 2010-08-15 11:38 编辑

什么叫做竟然,本来就是编译不通过的,你的case里头那个LABEL1是想干啥……

作者: daybreakcx   发布时间: 2010-08-15

LABEL1 没有定义值,当然编译不过

作者: juncker   发布时间: 2010-08-15

一来case后头需要一个constant-expression,而你只是一个LABEL1
二来你的i没初始化,你确定这么用是你最初的意图?

作者: daybreakcx   发布时间: 2010-08-15