C语言 开关情况下的错误,标签只能是语句的一部分,声明不是语句



>我正在创建一个带有开关大小写的简单菜单,因此根据编写的值,它可以做不同的事情,

void
menu_principal()
{
int opciones;
printf ("Ingrese su eleccion n");
scanf("%d", &opciones);
switch(opciones) 
{
case 1: 

int coord_x;
int coord_y;

printf("Ingrese las cordenadas de x n: ");
scanf( "%d", &coord_x);

printf("Ingrese las cordenadas de y n");
scanf( "%d", &coord_y );

break;


case 0:        

break;

…

}
return 0;
}

但它就是不起作用,我在scanfint coord_x上出现错误,coord_y.

您不能在像int coord_x;这样的声明之前放置标签。

你可以标记一个块——在int coord_x;之前添加{,在break;之前添加}(在它也可以工作之后(。

C11 §6.8.1 标记语句表明标签后面必须跟有语句。 §6.8 声明显示声明的构成;§6.8.2 复合语句表明声明不同于语句,6.7 声明涵盖了声明的组成。

最新更新