2014-03-20 5 views
0

Я упростил свою проблему и все еще в тупике. Я компиляции кода ниже с:Ожидаемый ';' before ':' token

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: 
    ^

я должен делать что-то глупое, но я не могу понять, что это такое.

+0

Потребность 'случай 1:' ', а не 1:'. –

+2

Где находится «случай»? 'switch' действительно скучает по своим друзьям. –

+1

Почему вы используете определения функций стиля K & R? Они полностью устарели. Используйте правильный прототип функции. – Barmar

ответ

3

В коде есть несколько вещей, которые вы можете исправить.

Во-первых, определение функции, вы должны определить тип аргумента в пределах (), а также включить тип возвращаемого значения.

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

Во-вторых, switch заявления нужно case ключевое слово в них:

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

Действительно ли один «случай» оправдывает «переключатель»? Почему бы просто не использовать более компактный «if» условный? – syb0rg

+0

@ syb0rg OP упомянул, что это была упрощенная версия его кода, который знает, сколько случаев он на самом деле имеет. – Coderchu

Смежные вопросы