Posts: 1,659
Threads: 17
Joined: Sep 2008
Quote:
Originally Posted by stabker
Не знаю, известно ли это всем. Нашел сегодня такой баг компилятора, что если внутри case любого switch объявить двух или трехмерный массив, то предшествующие ему переменные, внутри этого кейса, в дальнейших кейсах будут вести себя так, будто они уже объявлены. Иллюстрация проблемы ниже:
PHP Code:
justfortest()
{
switch(random(3))
{
case 0:
{
new normal = 1;
printf("", normal);
}
case 1:
{
new subject = 1;
/*new troublemaker[2][2] =
{
{ 1, 2 },
{ 3, 4 }
};*/
new subject_1 = 1;
printf("", subject, subject_1/*, troublemaker[0][0]*/);
}
case 2:
{
new subject = 1; //error 021: symbol already defined: "subject"
new subject_1 = 1;
printf("", subject, subject_1);
}
}
}
main()
{
justfortest();
}
Если раскомментировать все, связанное с массивом troublemaker, то в обозначенной строке 2-го кейса будет ошибка (как и во всех последующих случаях).
|
В компиляторе от Zeex это, вроде, исправлено.