c - 在 ‘;’ token 之前应为 ‘:’

标签 c gcc switch-statement

<分区>

我已经简化了我的问题,但仍然很困惑。我正在编译下面的代码:

cc -c test.c -g

虽然 gcc 也是这样做的。 test.c中的代码是:

set_nds(value)
int value;
{
    int val;
    int one,zero;

    val = 1;
    switch(val)
        {
        1:
            one = 1;
            break;
        }

    return(1);
}

我得到错误:

> gcc -c test.c -g

test.c: In function ‘set_nds’:
test.c:11:4: error: expected ‘;’ before ‘:’ token
   1:
    ^

我一定是在做一些愚蠢的事情,但我不知道它是什么。

最佳答案

您的代码中有几处您可以修复。

首先,您的函数定义,您应该在 ( ) 中定义参数类型,并且还包括返回类型。

int set_nds(int value){
    // and so forth...
}

其次,switch 语句中需要一个case 关键字:

switch(val){
    case 1:
        one = 1;
        break;
}
// and so forth...

关于c - 在 ‘;’ token 之前应为 ‘:’,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22521924/

相关文章:

c - 开关盒奇怪的范围

C程序While循环问题

C malloc 函数的大小参数

c - 链接libsrtp问题

c# - C# switch 语句中的变量声明

C++ 为什么这行得通

c - 虽然没有收到信号?

c - 这样的代码合法吗?

c - 当 argv*[] 是一个字符串时,如何通过 c 中的命令行传递数组?

c++ - GCC -fPIC 选项